Tag: 表示

Express应用程序中未处理的拒绝

我有很多基于ES6承诺的代码在我的快车应用程序中运行。 如果有一个从未被捕获的错误,我使用下面的代码来处理它: process.on('unhandledRejection', function(reason, p) { console.log("Unhandled Rejection:", reason.stack); process.exit(1); }); 这适用于debugging目的。 但在生产中,我想触发500error handling程序,向用户显示标准的“出错”页面。 我有这个捕获所有error handling程序,目前适用于其他例外: app.use(function(error, req, res, next) { res.status(500); res.render('500'); }); 将未处理的拒绝放在中间件内不起作用,因为它是asynchronous的,并导致Error: Can't render headers after they are sent to the client. 我将如何去unhandledRejection一个unhandledRejection拒绝500页?

连接的客户端使用套接字io的用户名列表

我使用NodeJS,socketIO和Express在不同的聊天室中创build了一个聊天客户端。 我正在尝试在每个房间的连接用户上显示更新的列表。 有没有办法将用户名连接到一个对象,所以我可以看到所有的用户名: var users = io.sockets.clients('room') 然后做这样的事情: users[0].username 我还有什么其他的方式可以做到这一点? 解决:这是一种重复,但解决scheme没有写得很清楚,所以我想我在这里写下来。 这是Andy Hin所发布的post的解决方法。 还有这篇文章的评论。 只是为了使事情更清楚。 如果你想在socket对象上存储任何东西,你可以这样做: socket.set('nickname', 'Guest'); 套接字也有一个get方法,所以如果你想让所有的用户做: for (var socketId in io.sockets.sockets) { io.sockets.sockets[socketId].get('nickname', function(err, nickname) { console.log(nickname); }); } 正如alessioalex所指出的那样,API可能会改变,并且自己跟踪用户是比较安全的。 你可以通过使用套接字ID来断开连接。 io.sockets.on('connection', function (socket) { socket.on('disconnect', function() { console.log(socket.id + ' disconnected'); //remove user from db } });

使用Node.js和Express进行简单的API调用

我刚刚开始使用Node,API和Web应用程序。 我理解Node.js和Express的基本工作原理,但是现在我想开始调用其他服务的API并使用它们的数据来完成任务。 你能概述基本的HTTP请求,以及如何抓取/parsingNode中的响应吗? 我也有兴趣在我的请求中添加特定的头文件(最初我使用http://www.getharvest.com API来压缩我的时间表数据)。 PS这看起来很简单,但是很多search没有find任何回答我的问题的东西。 如果这是愚蠢的,让我知道,我会删除。 谢谢!

如何结束express.js / node POST响应?

我试图在我将文档保存到数据库之后停止发布请求,即: app.post('/blah'), function(req,res){ //my code does a bunch of stuff res.what do i put here to tell the client browser to just… stop the POST } 目前,即时通讯简单地使用res.redirect('back') ,但页面刷新完全是任意的,我宁愿它没有发生。 我去了res.end(); 但是发送客户端到一个空白页面… 提前致谢。 编辑: 我不认为我在自己的对不起有什么了不起, 也许它的坏习惯,但这是发生了什么事情: POST启动数据库保存function 浏览器坐在等待响应 当它准备好了,obj被保存到数据库,然后callback触发一个NowJS函数,该函数将该项添加到视图(对于每个人) 我这样做是非阻塞的(所以我认为)

快速设置客户端可访问的Cookie

我正在使用Express和SocketIO的Node应用程序。 我想在我的Express控制器中设置一个cookie,然后从我的客户端Javascript代码访问它。 我所尝试的一切似乎都不起作用: res.setHeader('Set-Cookie','test=value'); res.cookie('rememberme', 'yes', { maxAge: 900000 }); 有什么我在这里失踪? 提前致谢!

node.js,express.js – 提供单个静态文件最简单的方法是什么?

我已经看到并且使用了: app.use("/css", express.static(__dirname + '/css')); 我不希望从根目录提供所有文件,只有一个文件“ipad.htm”。 使用express.js以最less的代码执行此操作的最佳方法是什么?

如何捕捉node.js中的http客户端请求exception

我有一个node.js应用程序,我想用来检查一个特定的网站是否启动并返回正确的响应代码。 我希望能够捕捉出现的任何错误,因为域名不解决或请求超时。 问题在于这些错误会导致Node出错。 我是新来的整个asynchronous编程方法,所以我不知道在哪里把我的try / catch语句。 我有一个类似/ check / site1的ajax调用。 服务器端调用一个试图build立连接的函数,然后返回statusCode。 这是一个非常简单的函数,我把每一行都封装在一个try / catch中,它从来没有捕获任何东西。 这里是: function checkSite(url){ var site = http.createClient(80, url); var request = site.request('GET', '/', {'host': url}); request.end(); return request; } 即使在try / catch中包装的每一行中,仍然会遇到类似EHOSTUNREACH等未捕获的exception。 我希望能够抓住那些并将其返回给ajax调用。 任何关于下一步尝试的build议?

Expressjs原始的身体

如何访问expressjs给我的请求对象的原始体? var express = require('./node_modules/express'); var app = express.createServer(); app.post('/', function(req, res) { console.log(req.body); //says 'undefined' }); app.listen(80);

在Express中处理robots.txt的最明智的方法是什么?

我目前正在使用Express(Node.js)构build应用程序,我想知道什么是处理不同环境(开发,生产)的不同robots.txt最聪明的方法。 这就是我现在所拥有的,但我并不相信这个解决scheme,我认为它很肮脏: app.get '/robots.txt', (req, res) -> res.set 'Content-Type', 'text/plain' if app.settings.env == 'production' res.send 'User-agent: *\nDisallow: /signin\nDisallow: /signup\nDisallow: /signout\nSitemap: /sitemap.xml' else res.send 'User-agent: *\nDisallow: /' (注意:它是CoffeeScript) 应该有更好的办法。 你会怎么做? 谢谢。

SyntaxError:意外的标记函数 – asynchronous等待Nodejs

我正在尝试使用节点版本6.2.1与我的一些代码。 有计划将大部分超callback定向代码迁移到看起来更干净,可能performance更好的东西。 我不知道为什么,当我尝试执行节点代码时,terminal抛出一个错误。 helloz.js (async function testingAsyncAwait() { await console.log("For Trump's Sake Print me!"); })(); 日志- BOZZMOB-M-T0HZ:rest bozzmob$ node helloz.js /Users/bozzmob/Documents/work/nextgennms/rest/helloz.js:1 (function (exports, require, module, __filename, __dirname) { (async function testingAsyncAwait() { ^^^^^^^^ SyntaxError: Unexpected token function at Object.exports.runInThisContext (vm.js:53:16) at Module._compile (module.js:513:28) at Object.Module._extensions..js (module.js:550:10) at Module.load (module.js:458:32) at tryModuleLoad (module.js:417:12) at Function.Module._load (module.js:409:3) […]