Tag: 表示

赶上所有路线除了/login

我目前正在编写一个API,这将要求用户在每个请求的标题中传递一个身份validation令牌。 现在我知道我可以创build一个catchall路线说 app.get('/*', function(req,res){ }); 但我想知道如何使它不包括某些路线,如/login或/ ?

'快车'不被识别的命令(窗口)

好的,我在Windows上运行节点(7)。 使用npm我只是安装模块到d:\目录。 因此,我的文件结构如下所示: D:\ -myproject -node_modules -.bin -express 但是,当我在这个“myproject”目录中,我似乎无法运行“express”,例如: D:\myproject\express site 'express' is not recognized as an internal or external command, operable program or batch file. 我做错了什么?

Node.js:从请求获取path

我有一个名为“localhost:3000 / returnStat”的服务应该以文件path为参数。 例如'/BackupFolder/toto/tata/titi/myfile.txt'。 我如何在我的浏览器上testing这项服务? 如何使用Express格式化此请求? exports.returnStat = function(req, res) { var fs = require('fs'); var neededstats = []; var p = __dirname + '/' + req.params.filepath; fs.stat(p, function(err, stats) { if (err) { throw err; } neededstats.push(stats.mtime); neededstats.push(stats.size); res.send(neededstats); }); };

使用Express.JS发送额外的http标题

我有几个静态页面与Express.JS服务。 设置很简单: var app = express(); app.configure(function(){ app.use(express.static(path.join(application_root, "StaticPages"))); app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); }); 我希望响应包括一个addittional http头( Access-Control-Allow-Origin:* )。 它应该放在哪里? 我尝试了下面的示例,但是当然头只出现在默认页面上: app.get('/', function(req, res){ res.setHeader("Access-Control-Allow-Origin", "*"); res.send('Hello World'); }); 谢谢。

创build一个接受参数的expressjs中间件

我正在尝试创build一个可以接受参数的中间件。 如何才能做到这一点? 例 app.get('/hasToBeAdmin', HasRole('Admin'), function(req,res){ }) HasRole = function(role, req, res, next){ if(role != user.role){ res.redirect('/NotInRole); } next(); }

摩卡APItesting:得到'TypeError:app.address不是一个函数'

我的问题 我已经编写了一个非常简单的CRUD API,最近我也开始编写一些使用chai和chai-httptesting,但是在使用$ mocha运行我的testing时遇到了问题。 当我运行testing时,在shell上出现以下错误: TypeError: app.address is not a function 我的代码 这里是我的一个testing( /tests/server-test.js )的示例: var chai = require('chai'); var mongoose = require('mongoose'); var chaiHttp = require('chai-http'); var server = require('../server/app'); // my express app var should = chai.should(); var testUtils = require('./test-utils'); chai.use(chaiHttp); describe('API Tests', function() { before(function() { mongoose.createConnection('mongodb://localhost/bot-test', myOptionsObj); }); beforeEach(function(done) { […]

使用webpack-dev-server运行节点快速服务器

我正在使用webpack使用以下configuration成功运行我的反应前端: { name: 'client', entry: './scripts/main.js', output: { path: __dirname, filename: 'bundle.js' }, module: { loaders: [ { test: /.jsx?$/, loader: 'babel-loader', exclude: /node_modules/, query:{ presets: ['es2015', 'react', 'stage-2'] } } ] } } 我想搭build一个node.jsexpression式的后端,也希望通过webpack运行它,这样我有一台服务器运行后端和前端,因为我想用babel来传输我的JavaScript。 我做了一个快速的testing服务器,如下所示: var express = require('express'); console.log('test'); var app = express(); app.get('/', function(req, res){ res.send("Hello world from Express!!"); }); app.listen(3000, function(){ […]

除了特定的path,在Express中使用特定的中间件

我在node.js中使用了一些中间件function的Express框架: var app = express.createServer(options); app.use(User.checkUser); 我可以使用带有附加参数的.use函数来仅在特定path上使用此中间件: app.use('/userdata', User.checkUser); 是否有可能使用pathvariables,以便中间件用于除特定path之外的所有path,即根path? 我在想这样的事情: app.use('!/', User.checkUser); 所以User.checkUser总是被调用,除了根path。

Node.js Express。 bodyParser的大身体

我使用Express.js版本4.2,并想parsing一个大的post(150K – 1M),但收到错误消息“请求实体太大”。 看来,这个限制是100 K.我现在不是如何改变Express 4的限制。在Express 3.x中,我只是做了 – app.use(express.json({limit: '5mb'})); app.use(express.urlencoded({limit: '5mb'})); 如何更改Express 4的限制? 谢谢你的帮助。

使用Express在dynamic路由上服务静态文件

我想像通常一样使用express.static(static_path)来处理静态文件,但是在dynamic路由上 app.get('/my/dynamic/:route', function(req, res){ // serve stuff here }); 一个开发者在这个评论中暗示了一个解决scheme,但是我不清楚他的意思。