Tag: 表示

Express中使用的参数“next”是什么?

假设你有这样一个简单的代码块: app.get('/', function(req, res){ res.send('Hello World'); }); 这个函数有两个参数, req和res ,分别代表请求和响应对象。 另一方面,还有其他函数带有第三个参数next 。 例如,让我们看看下面的代码: app.get('/users/:id?', function(req, res, next){ // Why do we need next? var id = req.params.id; if (id) { // do something } else { next(); // What is this doing? } }); 我不明白next()是什么,或者为什么使用它。 在这个例子中,如果id不存在, next究竟在干什么?

ExpressJS:如何使用参数redirectPOST请求

我需要将我的node.js服务器的所有POST请求redirect到远程服务器。 我尝试了以下操作: app.post('^*$', function(req, res) { res.redirect('http://remoteserver.com' + req.path); }); redirect工作,但没有POST参数。 我应该修改什么来保持POST参数?

如何在Express中使用HTML作为视图引擎?

我尝试从种子这个简单的变化,并创build相应的.html文件(如index.html)。 //app.set('view engine', 'jade'); app.set('view engine', 'html'); 这个文件保持不变: exports.index = function(req, res){ res.render('index'); }; 但运行时我得到 500错误:找不到模块'html' 我唯一的select是使用“ejs”吗? 我的意图是与AngularJS结合使用纯HTML。

在Jade中使用一个variablesinclude

我正在使用Jade和Express,我想在我的include语句中使用一个variables。 例如: app.js app.get('/admin', function (req, res) { var Admin = require('./routes/admin/app').Admin; res.render(Admin.view, { title: 'Admin', page: 'admin' }); }); layout.jade – var templates = page + '/templates/' include templates 当我这样做时,我得到错误EBADF, Bad file descriptor 'templates.jade' 我甚至尝试过 include #{templates} 无济于事。

在node.js Express中获取当前请求的主机名

所以,我可能会在这里错过简单的东西,但我似乎无法find一个方法来获取请求对象,我要发送一个响应请求的主机名。 是否有可能找出用户目前从node.js访问的主机名?

Express.js – app.listen与server.listen

这可能是一个非常基本的问题,但我根本不明白。 例如,使用Express.js创build应用程序和启动监听端口1234的应用程序有什么区别: var express = require('express'); var app = express(); //app.configure, app.use etc app.listen(1234); 并添加一个http服务器: var express = require('express'), http = require('http'); var app = express(); var server = http.createServer(app); //app.configure, app.use etc server.listen(1234); 有什么不同? 如果我导航到http://localhost:1234 – 我得到相同的输出…

在ExpressJS中将variables传递给JavaScript

我完全失去了这一点; 我正在使用NodeJS来获取JSON,我需要将该variables传递给我的页面,并使JavaScript使用数据。 app.get('/test', function(req, res) { res.render('testPage', { myVar: 'My Data' }); 这是我的Express代码(testing非常简单); 现在使用EJS我想收集这些我知道在页面上呈现的数据很简单 <%= myVar %> 但我需要能够收集这些数据在JavaScript(如果可能在.js文件中),但现在只是要显示在一个警报框中的variables我已经尝试 在Jade中它就像alert('!{myVar}')或!{JSON.stringify(myVar)} 。 我可以在EJS中做类似的事吗? 我不需要任何像<input type=hidden>的字段,并在javascript中使用字段的值。 如果有人可以帮助非常感激

查询在使用mongoose.createConnection()与mongoose.connect()时挂起

作品: var mongoose = require('mongoose'); var db = function() { return { config: function(conf) { mongoose.connect('mongodb://' + conf.host + '/' + conf.database); var db = mongoose.connection; db.on('error', console.error.bind(console, 'connection error:')); db.once('open', function callback() { console.log('db connection open'); }); } }; }; module.exports = db(); 不起作用: var mongoose = require('mongoose'); var db = function() { return […]

正确的方法来使用节点或Express返回JSON

所以,可以尝试获取以下JSON对象: $ curl -i -X GET http://echo.jsontest.com/key/value/anotherKey/anotherValue HTTP/1.1 200 OK Access-Control-Allow-Origin: * Content-Type: application/json; charset=ISO-8859-1 Date: Wed, 30 Oct 2013 22:19:10 GMT Server: Google Frontend Cache-Control: private Alternate-Protocol: 80:quic,80:quic Transfer-Encoding: chunked { "anotherKey": "anotherValue", "key": "value" } $ 有没有一种方法可以在服务器使用节点或expression式的响应中产生完全相同的主体? 显然,可以设置标题,并指出响应的内容types将是“application / json”,但是有不同的方式来写/发送对象。 我见过的常用的是使用下面的命令: response.write(JSON.stringify(anObject)); 但是,有两点可以说是“问题”: 我们正在发送一个string。 而且,最后没有新的线路特征。 另一个想法是使用命令: response.send(anObject); 这似乎是发送一个JSON对象基于curl的输出类似于上面的第一个例子。 但是,在terminal上再次使用curl时,在主体的末尾没有新的行字符。 那么,怎样才能真正写下类似这样的东西,最后使用node或node / express附加一个新的行字符呢?

为什么不能内联调用res.json?

我有和expressjs应用程序,并在特定的路线我调用一个函数,通过调用res.json与数据库文件作为参数与数据库中的用户响应。 我使用基于承诺的库,我想内联的callback,我把数据库文件的响应。 但是当我这样做的时候程序就会失败。 有人可以解释为什么吗? 我也想知道为什么内联调用console.log实际上工作。 两个方法res.json和console.log之间有一些根本的区别吗? 这是一个什么工作,什么不工作的例子。 假设getUserFromDatabase()返回用户文档的承诺。 //This works var getUser = function(req, res) { getUserFromDatabase().then(function(doc) { res.json(doc); }); } //This does not work (the server never responds to the request) var getUserInline = function(req, res) { getUserFromDatabase().then(res.json); } //This works (the object is printed to the console) var printUser = function(req, res) { […]