Tag: 表示

使用MEAN Express 4.x和Node.js来定义req.body

我是一个总noob,并期待开发MEAN堆栈技能。 我有一个基本的节点设置工作,基本的GET路线工作正常,但POST和DELETE不传递数据到mongo。 我debugging了解req.body是未定义的,但我不知道为什么 – 我已经: 检查我正在使用bodyParser路由在configuration后声明 这里是代码app.js: var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var app = express(); var routes = require('./routes/index'); var todos = require('./routes/todos'); // set our port var port = process.env.PORT || 3000; //Requires the […]

正确的方法来处理库依赖

我无法决定/确定传递依赖关系到我的Expresspath的标准/最佳方法是什么。 我遇到的问题是,我的一些图书馆有绑定与他们关联,即。 我的会话pipe理器连接到我的redis队列客户端。 我的日志有configuration设置映射他们相应等 所以这里是我的路线: // Include routes and endpoints app.use(require('./routes/account')(queue, models, log)); app.use(require('./routes/message')(queue, models, log)); app.use(require('./routes/admin') (queue, models, log)); 正如你可以看到我传递我的依赖作为参数。 我还没有开始写unit testing,但是我怀疑这会给我带来更多的痛苦。 另一件我想要做的就是将库附加到我的请求对象,如下所示: req.log = log; req.nconf = nconf; req.sessions = sessions; 我不确定的是:a)最好的/标准的做法是什么,b)这些方法中的任何一种都会影响性能/内存的使用,c)这将如何影响我未来的unit testing。 任何关于这个的见解都会很棒! 谢谢。

EADDRINUSE与node-webkit一起使用expressjs时

我想使用nw.js作为独立的套接字客户端和服务器。 我正在尝试将来自socket.io网站的示例 socket.io聊天应用程序放入一个nw.js应用程序中。 但是,当我开始nw.js我得到了以下错误: [5591:0222/143044:ERROR:nw_shell.cc(325)] Error: listen EADDRINUSE :::3000 at Object.exports._errnoException (util.js:734:11) at exports._exceptionWithHostPort (util.js:757:20) at Server._listen2 (net.js:1153:14) at listen (net.js:1179:10) at Server.listen (net.js:1266:5) at Object.<anonymous> (/Users/xxxx/nwjs/chat-example/index.js:23:6) at Module._compile (module.js:451:26) at Object.Module._extensions..js (module.js:469:10) at Module.load (module.js:346:32) at Function.Module._load (module.js:301:12) 我已经尝试了多个端口,没有工作。 这里是我使用的服务器的代码,大部分是由socket.io指南提供的。 var app = require('express')(); var http = require('http').Server(app); var io = require('socket.io')(http); app.get('/', function(req, […]

Node.js如何知道callback的第一个参数是一个error handling程序?

我对Node.js很陌生,我试图围绕它的错误优先的callback风格。 我很好奇一个函数如何知道第一个参数是否用于处理错误,什么时候用于处理请求,什么不是,因为这些variables名是任意的。 这里有一些例子,首先有没有err的代码 fs.readFile('/foo.txt', function(err, data) { if (err) { console.log('Ahh! An Error!'); return; } console.log(data); }); 和 http.createServer(function(req, res) { … }); 我相信Express框架通过计算参数的数量来做到这一点,但是在这些情况下,只有两个参数。

为什么ejs模板中的分号会引发错误

在下面的代码中,如果删除了分号,模板引擎不会抛出错误,否则会抛出错误。 <ul> <% for (i = 0; i < array.length; ++i) { %> <%= JSON.stringify(array[i]); %> <% } %> </ul> 尽pipe把分号放在句法上是正确的,为什么模板引擎会抛出错误呢?

如何通过Express路由到多个Angular应用程序?

问题是,我有一个server和client文件夹,而不是客户端我有2个Angular应用程序:1个网站和1个仪表板。 https://github.com/leongaban/bitage/tree/website 目前,我运行服务器后,并击中path/你被路由到网站的应用程序,一旦我似乎无法路由到仪表板的应用程序。 文件夹结构: server/ client/ website/ dashboard/ 服务器/内的main.js正确路由到网站应用程序,但无法路由到仪表板/ //website api ============= var website = express.Router(); app.use('/', website); app.use('/', express.static("../client/website/")); console.log(__dirname + "../client/website/"); website.use(function(req, res, next) { console.log(req.method, req.url); next(); }); website.get('/', function(req, res) { var path = 'index.html'; res.sendfile(path, { 'root': '../client/website/' }); }); //dashboard api =============== var dashboard = express.Router(); app.use('/dashboard', dashboard); app.use('/', […]

Node Express Handlebars助手不返回函数的结果

我对这个感到困惑。 如果我在一个句柄帮助器中使用一个函数并返回该函数的结果,则不会返回任何结果。 这是模板: <ul> <li>{{formatid this.id}}</li> </ul> 这里是帮手: formatid : function(id){ mOrders.formatOrderID(id, function(err, formatted_id){ // err is always null, no need to handle console.log(formatted_id); return formatted_id; }); } 然而,尽pipe正确的文本被logging到控制台,结果html是: <ul> <li></li> </ul> 但是,如果我在formatOrderID()函数结束之后放置了一个返回值,它将返回,所以: formatid : function(id){ mOrders.formatOrderID(id, function(err, formatted_id){ // err is always null, no need to handle console.log(formatted_id); return formatted_id; }); return 'some_text'; } […]

Express Routes – 多个文件的问题

我开始用Express学习Node.js,但是我在路由系统上遇到了一些问题。 在我的app.js(我的主文件)中,我有: var express = require('express'); var path = require('path'); var routes = require('./routes/index'); var admin = require('./routes/admin'); … app.use('/', routes); app.use('/admin, admin); 在index.js中: var express = require('express'); var router = express.Router(); /* GET home page. */ router.get('/', function(req, res, next) { res.render('index', { title: 'Express' }); }); 根url工作得很好,它正确地返回了玉模板的'索引'。 我正在尝试在“admin”模板(在“./routes/admin”中)的其他文件中做同样的事情。 有一点,当我去本地主机:5000 /pipe理(例如),它会返回一个404错误。 有我的admin.js文件: var express […]

会话ID对于不同的客户端Nodej是相同的

目前,我们正在使用express-session与passport.js和connect-redis将数据存储在connect-redis从而在cookie中设置会话。 我有多个节点服务器服务请求。 对于没有会话的每个请求,我正在创build一个新的会话。 有时候,一个现有的会话ID被分配给一个新的请求。 创build一个独特的会话之前,我正在检查cookie是否存在…如果是,那么我不创build一个新的会话。 但是在这样做的时候,我们看到同一个会话ID被不同的客户端共享。 我怎么知道它是相同的? 第一个用户尝试login,它使login成功,并build立会话,并提供有关用户configuration文件的正确信息。 第二个用户尝试login,它会提供成功的login,但将会话设置为先前的第一个用户会话,因此第二个用户将在configuration文件部分看到第一个用户信息。 会议执行代码: function sessionImplementation() { return function (req, res, next) { if(/ucompany=s%3A/.test(req.headers['cookie'])){ var cookie = req.headers['cookie'].split("ucompany=s%3A"); var zCookie = cookie[1].split("."); var genid = zCookie[0]; return session({ genid:function () { return genid; }, store: redis, cookie: { maxAge: new Date(Date.now() + (7 * 24 * 60 * 60 […]

busboy将不会收到上传的文件

我的表单很简单。 它使用ng-flow来处理file upload: <form class="form-horizontal" enctype="multipart/form-data"> <div flow-init="{target: '/test', testChunks: false, query: {'_csrf': '{{csrf}}', 'somestring': 'teststring'} }" flow-files-submitted="data.flow.upload()" flow-name="data.flow"> <input type="file" flow-btn/> </div> </form> 一旦图像被选中, ng-flow将对目标path执行POST。 看起来像图像是由于请求有效负载有一堆像这样发送的: 1048576 ——WebKitFormBoundaryw2YAG9m602ICPd0Q Content-Disposition: form-data; name="flowCurrentChunkSize" 图像不是很大(〜1MB) 在nodejs端(带有express): var busboy = require('connect-busboy')({ limits: { fileSize: 10 * 1024 * 1024 } }); router.post('/test', busboy, function(req, res) { console.log('test called'); […]