Articles of express 4

卡在console.log(JSON.stringify(req))中间件

当我从我的客户端连接到我的Express 4 node.js websocket服务器并尝试loggingreq时,整个程序就卡住了。 它仍然接受新的连接,并执行到相同的console.log,但然后卡住了。 我试图弄清楚需要包含什么,但是这种搞清楚的方式似乎并不奏效。 app.use(function (req, res, next) { console.log("middleware"); var session = req.session; console.log("session: " + JSON.stringify(session)); console.log("req non json: " + req); console.log("req: " + JSON.stringify(req)); //stuck return next(); });

将包含文件传递到Handlebars布局

我正在使用Node.js,Express 4和Handlebars模板处理器。 我使用Handlebars渲染的一些页面视图有几个千字节的静态内联SVG代码。 有没有简单的干净的方法把SVG代码放到一个单独的文件中,以包含在Handlebars布局模板中? 理想情况下,这个包含文件的扩展名是.svg,但是.hbs是可以接受的。

Express4.10 bodyParser req.body undefined

我试图build立一个节点应用程序的login尝试访问路线/loginget:req.body未定义 错误: TypeError: Cannot read property 'usuario' of undefined at login (/home/makros/workspace/ntalk/controllers/home.js:8:24) at Layer.handle [as handle_request] (/home/makros/workspace/ntalk/node_modules/express/lib/router/layer.js:82:5) at next (/home/makros/workspace/ntalk/node_modules/express/lib/router/route.js:100:13) at Route.dispatch (/home/makros/workspace/ntalk/node_modules/express/lib/router/route.js:81:3) at Layer.handle [as handle_request] (/home/makros/workspace/ntalk/node_modules/express/lib/router/layer.js:82:5) at /home/makros/workspace/ntalk/node_modules/express/lib/router/index.js:235:24 at Function.proto.process_params (/home/makros/workspace/ntalk/node_modules/express/lib/router/index.js:313:12) at /home/makros/workspace/ntalk/node_modules/express/lib/router/index.js:229:12 at Function.match_layer (/home/makros/workspace/ntalk/node_modules/express/lib/router/index.js:296:3) at next (/home/makros/workspace/ntalk/node_modules/express/lib/router/index.js:190:10) app.js var express = require('express'), load = require('express-load'), cookieParser = require('cookie-parser'), session = require('express-session'), […]

MongoDB和Express:types错误:将循环结构转换为JSON

我是新的MEAN堆栈。 我正在尝试从MongoDB中检索文档列表。 我已经使用Visual Studio 2013社区版来创build基本的Nodejs Express应用程序。 Visual Studio在根上创buildapp.js文件进行configuration。 我已经把下面的代码放在app.js中,这与mongodb有关: var mongo = require('myDB'); var db = new mongo.Db("myDB", new mongo.Server("localhost", "27017"), { safe: true }, { auto_reconnect: true }); // Make our db accessible to our router app.use(function (req, res, next) { req.db = db; next(); }); 在visual studio创build的path文件夹中,我创build了一个将执行CRUD操作的js文件。 我在这个文件中有以下代码: var express = require('express'); var […]

Express.js 4.0 – 为每个路由器使用单独的视图目录

我使用Express 4 路由器分离出两种不同的应用程序function。 每个应用程序函数都有自己的一套ejs视图模板,名称相互冲突(例如都有一个search.ejs )。 我如何指定路由器只使用特定的视图目录来渲染视图? 例如,视图目录如下所示: views/ app1/ – search.ejs – index.ejs app2/ – search.ejs – index.ejs

Node Express Busboy文件和字段上传

当用Express来处理图片上传时,我可以得到一个multipart / form-data的字段和文件,如下所示: var busboy = require('connect-busboy'); app.use(busboy()); app.post('/something', function(req,res) { req.pipe(req.busboy); req.busboy.on('field', function(fieldname, val) { // do stuff here with fields… } req.busboy.on('file', function (fieldname, file, filename) { // do stuff here with the file } }); 我想知道的是,有一个例子,在我处理文件之前,我想知道这些字段是什么。 在我的实验中,似乎每次都得到第一个字段。 有谁知道这是否总是如此?

为什么在Visual Studio for Azure中的node.js服务器的创build方式不同?

我在Azure项目中遇到了一个奇怪的问题,这似乎与服务器的创build方式有关。 该项目是使用Visual Studio 2013 Ultimate中的Basic Azure Node.js Express 4 Application模板创build的。 经过一番斗争,该项目在本地运行良好,直到我点击浏览器的刷新button,永远不会回来。 该项目最初是在WebStorm创build的,我没有这个问题。 据我所知,他们之间的差异是非常小的:在WebStorm,这是用来: var server = http.createServer(app); server.listen(process.env.PORT, process.env.IP); 但在Visual Studio中,这是使用(从www文件中的模板创build的): app.set('port', process.env.PORT || 3000); var server = app.listen(app.get('port'), function() { console.log('express server listening on port ' + server.address().port); }); 当我用WebStorm版本replace这个,一切似乎再次正常工作。 有人可以解释为什么吗? 顺便说一下,在我的应用程序中,我不使用节点视图。 相反,我正在使用: app.set("view options", { layout: false }); app.all('*', function (req, res, next) […]

使用Express 4如何redirect到我自己的路线,而不会丢失req和响应数据?

我有我的应用程序结构3路由(API,pipe理,默认)。 每个人都有自己的文件,并有自己的中间件,并输出一个路由。 我面临的问题是当我想要转发到另一个路由器上的另一个路由器。 基本上我想调用相同的function,以便我不从多个位置提供相同的视图。 我不想用res.redirect('/ someplace'),因为我希望能够将req和res对象传递给方法。 |-app.js |-routes |—admin.js |—api.js |—default.js 路线是必需的,并在app.js中使用如下 app.use('/api', require('./routes/api')(passport); app.use('/admin', require('./routes/admin')(passport); app.use('/', require('./routes/default')(passport); 在pipe理员的内部,如果有我需要redirectlogin和传递一些数据的情况 // authenticates all routes for the admin router router.use(function(req, res, next){ if(req.isAuthenticated()){ return next(); } res.flashMessage.push('Session expired'); //is lost after redirect res.redirect('/login'); //do I need to restructure my whole app so that I don't //have to […]

没有使用不同的端口号,Socket.io不支持Express 4

我的应用程序工作时,我指定一个端口号到socket.io是不同的服务器端口号。 工作代码如下: 这是我的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 mongoose = require('mongoose'); var configDB = require('./config/database.js'); var session = require('express-session'); var passport = require('passport'); var routes = require('./routes/index'); var auth = require('./routes/auth.js'); var app = express(); […]

nodejs-无法从辅助函数中获取数据

我为我的项目使用ExpressJS 4,它遵循MVC体系结构。 我创build了一个帮助器,可以编写从DB(DRY方法)查询数据的常用函数,这些函数可以从任何控制器访问。 我能够调用帮助函数并将数据传递给它,但我无法从中查询数据库。 以下是我的控制器( dumyController.js )的示例: 'use strict'; var dbHelpers = require('../helpers/helpers'); exports.dummyFunction = function (req, res) { var id=165; var abc = dbHelpers.dummyHelperFunction(iddd); console.log(abc); }; 正如你所看到的,我正在调用控制器中的帮助器function。 这是一个helper样例( helpers.js ) var db = require('../db'); module.exports = { dummyHelperFunction: function (passvar) { var params = [passvar]; var query = `SELECT email FROM members where id=?`; […]