Tag: expression

在Express.js中redirect后调用下一个中间件

我正在通过Express.js中间件的集成testing来驱动行为。 我遇到了一个有趣的情况,在应用程序背后的行为是不可预测的(不是由我,无论如何)。 作为一个简单的例子: var middlewareExample = function(req, res, next){ if(req.session){ refreshSession(req.session, function(err, data){ if(!err){ res.redirect('/error'); } }); next(); }else{ res.redirect('/authenticate'); } }; 问题在于next的redirect,因为它在内部函数和条件之外。 我不确定Express是如何将中间件/路由调用处理为next或res.redirect如果它们恰好发生在彼此之前或之后,如上所述。 手动testing没有发现任何奇怪的行为,超级模块也没有。 我想知道Express是否以及如何回应这种情况。 另外,supertest可以用来揭露任何潜在的不良行为。 另外,如果可以的话,我想听听别人用什么方法来testingNode / Express中间件。

Express.js:这是一个REST风格的界面吗?

我对node和express.js很新,而且我对REST应用程序的概念也很陌生。 我想编写一个典型的CRUD应用程序,某种日记。 因此,我有一个条目集合,可以查看单个条目,并可以添加,编辑和删除条目。 我还没有到现在,如何URi必须build立代表一个REST符合API。 我会在我的app.js中创build这样的东西: // GET REQUEST ROUTING app.get('/', diary_router.home); app.get('/entries/', diary_router.listEntries); app.get('/entries/:id', diary_router.getSingleEntry); // POST REQUEST ROUTING app.post('/entries/', diary_router.addEntry); // PUT REQUEST ROUTING app.put('/entries/', diary_router.updateEntry); // DELETE REQUEST ROUTING app.delete('/entries/', diary_router.deleteEntry); 那可以称为REST一致性接口吗? 我是否应该在路线中添加相应的动作,比如这个,并且是否需要在PUT和DELETE动作的URL中显示项目ID? // GET REQUEST ROUTING app.get('/', diary_router.home); app.get('/entries/', diary_router.listEntries); app.get('/entries/show/:id', diary_router.getSingleEntry); // POST REQUEST ROUTING app.post('/entries/add/', diary_router.addEntry); // PUT REQUEST ROUTING […]

Node.js虚拟机和string连接

我有一个dynamic生成的HTML文件,只有一个JavaScript对象注释掉。 我正在尝试读取该文件,将对象作为string取出,并使用VM的runInNewContext() 。 但是我遇到了几个障碍。 下面是我的代码: 我必须阅读的文件: /* { "userId": ["2897599"], "addressId": ["1287124"] } */ 我正在尝试使用的代码: var startDataMap = body.indexOf('{') , endDataMap = body.indexOf('}') , dataMap = body.substring(startDataMap, endDataMap); var sandbox = {}; try { vm.runInNewContext(dataMap, sandbox) } catch (error) { console.log(error) }; 如果我运行它会反弹一个错误: [SyntaxError: Unexpected token :] 如果我运行一个正则expression式(即用(/\{/)而不是('{') )它将执行没有错误,但它没有捕获数据。 问题:为什么不能尝试工作,如何使用VM获取我需要的数据? 更新: 我采取了下面的答案的build议,并删除了错误,并添加了一两个调整。 这里是更新的代码: var startDataMap […]

如何从已知标记列表中标记string?

我有一个令牌列表,用于生成人造日语单词,如下所示: var syllables = ["chi","tsu","shi","ka","ki","ku","ke","ko","ta","te","to","sa","su","se","so","na","ni","nu","ne","no","ha","hi","fu","he","ho","ma","mi","mu","me","mo","ya","yu","yo","ra","ri","ru","re","ro","wa","wo"]; 给定一个像“yoniyotachihochinitarehakemukenushihofure”,是否有可能将它分割成一个数组,像“[yo”,“ni”,“yo”…使用RegExps? 到目前为止,我有 var s=""; for(var i=0;i<syllables.length;i++) s+=("("+syllables[i]+")"); s+="+"; console.log(s); var splitregex = new RegExp(s,"gi"); console.log(str.split(splitregex)); 我回来了“['yoniyotachihochinitarehakemukenushihofure']”

Express控制台显示许多请求

对于每个页面加载应该如何工作,我有点困惑。 这是一个正常的日志状态写在页面中的所有静态资产,或者它应该只显示一个请求的视图?

用Node.js路由欺骗index.php

我想在node.js中重写我的php应用程序。 我的问题之一是,我们有一些用其他语言编写的旧版客户端应用程序直接指向一个php文件。 是否有可能欺骗一个快速路线的PHP文件? 我已经尝试了以下内容: app.get('/index.php/', function(req, res){ res.end('test'); }); 但在{我的域名} /index.php/input给我 无法获取/index.php 我喜欢的是一个名为legacy.js的路由文件,随着旧版应用程序的更新,我可以逐一删除路由。 欢呼任何帮助, 知更鸟

curl with nodejs express – POST数据

我试图模拟一个POST请求到一个基于Express的服务器应用程序nodeJS。 它运行在localhost:3000 (JS小提琴: http : //jsfiddle.net/63SC7/ ) 我使用下面的CURL行: curl -X POST -d "{\"name\": \"Jack\", \"text\": \"HULLO\"}" -H "Content-Type: application/json" http://localhost:3000/api 但是收到错误信息: Cannot read property 'text' of undefined 任何想法我做错了什么? 注意:我可以使用这一行进行成功的GET请求: curl http://localhost:3000/api

Mean Stack应用程序中的部分页面呈现问题

我通过Pluralsight教程学习Mean Stack。 我在某些时候渲染部分2天。 你可以参考下面的图片获取我的文件夹结构。 server.js /** * Created by nyaconcepts on 4/10/2014. */ var express=require('express'); var env=process.env.NODE_ENV=process.env.NODE_ENV||'development'; var app=express(); var config=require('./server/config/config')[env]; require('./server/config/express')(app,config); require('./server/config/mongoose')(config); require('./server/config/routes')(app); app.listen(config.port); console.log('Listening on port'+config.port+'—'); express.js var express=require('express'), bodyParser = require('body-parser'), morgan = require('morgan'), stylus=require('stylus'); module.exports=function(app,config) { function compile(str,path){ return stylus(str).set('filename',path); } app.set('views',config.rootPath+'server/views'); app.set('view engine','jade'); app.use(morgan('dev')); app.use(bodyParser()); app.use(stylus.middleware({ src:config.rootPath+'/public', compile:compile } )); […]

使用REST API在ExpressJS和AngularJS中上传文件

我是AngularJS和Node.js的新手。 我想使用REST API AngularJS和Express.js来实现文件(.pdf,.jpg,.doc)上传function。 我试图从使用NodeJS来获取API调用上传文件的想法,但我仍然不清楚如何在REST API中使用AngularJS和Express.js上传文件。 任何人都可以向我解释如何使用REST API和AngularJS和Express.js上传文件,基本的例子?

JavaScript for循环内的asynchronous函数

我试图从数据库中获取数据到一个jsonvariables,然后将其发送到客户端,问题是,因为我从数据库中asynchronous获取所有数据,我不知道什么时候json被正确填充。 var geojson={ "type": "FeatureCollection", "features": [] }; var routeObjects=JSON.parse(route.route); for(var i=0;i<routeObjects.length;i++){ hostelery.getInfo(routeObjects[i].ID, function(err, hostelery){ if(!err) geojson.features.push(hostelery); }); } 所以,当所有的数据在geojson中,我想把它发回客户端… 任何帮助,将不胜感激… 非常感谢你。