Articles of expression

使用Visual Studio代码debugging节点js

我尝试用Visual Studio代码debugging节点JS中的项目,但我没有实现。 我用下面的命令build立了一个简单的项目: express myExpressApp cd myExpressApp npm install npm start我的文件launch.json: 我在窗口“debugging”中select选项“启动app.js”。 应用程序运行没有问题。 我把一个断点: 我给Chrome的地址是: http:// localhost:3000 / Visual Studio代码说:“暂停断点”,但我什么也没有看到,我可以按继续,应用程序继续… 编辑:我使用OS X 10.10(我testing了它,它在Ubuntu中完美的工作。)

express.js路由解释

我正在查看express.js源代码,以了解如何将命名的路由参数映射到req.params属性。 对于那些不知道的人,在express.js中,你可以用命名参数定义路由,使它们成为可选的,只允许具有特定格式(和更多)的路由: app.get("/user/:id/:name?/:age(\\d+)", function (req, res) { console.log("ID is", req.params.id); console.log("Name is", req.params.name || "not specified!"); console.log("Age is", req.params.age); }); 我意识到这个function的核心是在lib / utils.js中定义的一个名为pathRegexp()的方法。 方法定义如下: function pathRegexp(path, keys, sensitive, strict) { if (path instanceof RegExp) return path; if (Array.isArray(path)) path = '(' + path.join('|') + ')'; path = path .concat(strict ? '' : '/?') .replace(/\/\(/g, '(?:/') […]

无法访问Express / NodeJS中的req.sessionvariables

我已经看到了这个问题的许多变化,但似乎没有解决我的问题。 我正在尝试使用Express来设置Node.js服务器。 这是我的服务器configuration: var express = require('express'), RedisStore = require('connect-redis')(express); var app = express(); app.use(express.urlencoded()); app.use(express.json()); app.use(express.cookieParser()); app.use(express.session({ store: new RedisStore(), secret: APP_SECRET })); // Initialize redis connection var client = redis.createClient(); client.on('connect', function() { console.log('Connected to Redis server') }) client.on('error', function (err) { console.log('Error ' + err); }); // Enable cross-origin resource sharing app.all('*', […]

代理与nodejs

我开发一个webapp,对api。 由于api没有在本地系统上运行,我需要代理请求,所以我不运行跨域问题。 有没有一个简单的方法来做到这一点,所以我的index.html将从本地和所有其他的GET,POST,PUT,DELETE请求发送到xyz.net/apiEndPoint。 编辑: 这是我的第一个解决scheme,但没有工作 var express = require('express'), app = express.createServer(), httpProxy = require('http-proxy'); app.use(express.bodyParser()); app.listen(process.env.PORT || 1235); var proxy = new httpProxy.RoutingProxy(); app.get('/', function(req, res) { res.sendfile(__dirname + '/index.html'); }); app.get('/js/*', function(req, res) { res.sendfile(__dirname + req.url); }); app.get('/css/*', function(req, res) { res.sendfile(__dirname + req.url); }); app.all('/*', function(req, res) { proxy.proxyRequest(req, res, { […]

asynchronous在Node.js中调用模式到API

构build我的第一个“严重的”Node.js项目(使用Express)。 我需要对几个REST API使用几个调用,收集所有结果,按摩它们,并返回一个完整的JSON到客户端(HTML5 + AJAX)。 调用API A 调用API B 再次调用API A(来自B的结果) 将3个调用的结果处理成JSON response.send(结果) 我敢肯定/希望有一个简单的模式,或解决scheme,或模块,我只是没有正确的谷歌:)我也将不胜感激意见放在这样的操作(在'路线'?分开的文件?等等。) 谢谢你的时间!

当通过http.request发送post请求时,req.body是空的

我有一个nodejs应用程序使用bodyparser(),这条路线: app.post('/users', function(req, res){ res.json(req.body) }) 当我curl curl -X POST 127.0.0.1:3000/users -d 'name=batman' 服务器发回这个JSON: { name: 'batman' } 我的问题是当试图使用http.request相同的请求,req.body是空的我正在做同样的调用,虽然,这是一个test.js文件,我运行节点: var http = require('http'); var options = { host: '127.0.0.1', port: 3000, path: '/api/users', method: 'POST' }; var request = http.request(options, function (response) { var str = ''; response.on('data', function (chunk) { str += chunk; }); […]

ExpressJS:app.local和res.local有什么不同?

我试图学习Express,并在我的应用程序中,我有中间件,从Request对象传递会话对象到我的Response对象,以便我可以在我的视图中访问它: app.use((req, res, next) -> res.locals.session = req.session next() ) 但是app.locals可用于视图,对吗? 那么,如果我做app.locals.session = req.session它是一样的吗? 是否有一个约定的事物types的app.locals和res.locals用于? 我也困惑res.render()和res.redirect()之间的区别是什么? 什么时候应该使用? 谢谢阅读。 任何与快递有关的帮助表示赞赏!

使用Jade,NodeJS,Express的dynamichtml页面

我有一个大的json对象,包含从redis keystore检索的示例电子表格中的单元格数据。 我想在jade模板中以html表格格式显示它。 但现在,我可以把它显示为一个JSONstring。 我也不清楚如何使用玉/快速生成dynamic网页。 示例JSONstring正试图通过: {"1A":"Cell Data 1", "1B": "Cell Data 2",…} 这是来自Excel电子表格的数据。 请帮我澄清这个疑问。

用express-validatorvalidation密码

我使用express-validator进行express 3.x – 当用户更改密码或注册新帐户时,他们必须input两次密码。 如果两个密码(两个string)不匹配,我将如何编写一个自定义validation器来将错误推送到express-validator中的错误堆栈? 像这样的东西: req.assert('password1', 'Passwords do not match').isIdentical(password1, password2); var mappedErrors = req.validationErrors(true);

Node.js(Express)表格在提交时清除

我正在使用Node.js(使用Express)开发一个非常基本的registry单,我正在试图find提供基本表单validation的最简单的方法。 我已经去了“快速确认器”,这似乎做得很好。 但是,我的目标是简单地显示所需的任何validation消息,并保留用户input的值。 看来请求信息没有回到res.render,我想这是有道理的。 然而,我已经到处看到了我能想到的,我找不到任何参考,讨论如何在显示错误消息后填充表单字段。 以下是描述我的方法的小片段: post: function(req, res){ var userName = req.body.username; var password = req.body.password; //Validate input req.assert("username", 'Invalid email address.').isEmail(); req.assert("password", 'Password cannot be empty.').notEmpty(); req.assert("passwordConfirm", 'Passwords entered do not match!').equals(password); //Make sure we have no validation errors var pageErrors = req.validationErrors(); if(!pageErrors) { userModel.CreateUser(userName, password, function(err){ if(err) { //there was a […]