我怎样才能在快递js手动触发路由处理程序?
假设我有一个简单的快速js应用程序,如下所示:
var express = require('express'); var app = express(); app.get('/', function(req, res) { return res.json({ hello: 'world' }); }); module.exports = app;
我想能够去命令行,需要的应用程序,启动服务器和模拟请求。 像这样的东西:
var app = require('./app'); app.listen(3000); app.dispatch('/') // => {hello:"world"}
您可以使用run-middleware
模块。 这是通过创build新的请求和响应对象,并使用这些对象来调用您的应用程序。
app.runMiddleware('/yourNewRoutePath',{query:{param1:'value'}},function(responseCode,body,headers){ // Your code here })
更多信息:
- Github & NPM中的模块页面;
- 使用运行中间件模块的例子
披露:我是这个模块的维护者和第一个开发者。
据我所知,没有办法切换到一个特定的路线在内部,但有一种方法来标记请求,然后移动到下一个路线:
app.use((req, res, next) => { if("nextRouteCondition"){ req.skip = true; return next(); } })
这可以让你完成你想做的事情。
- 了解express的app.mountpath属性
- 第一个nodejs应用程序,它是说更新你的中间件使用率较低
- 使用express-jwt作为中间件来validationAzure AD颁发的令牌
- angular度路由错误path.json的参数必须是string
- Express会话MongoDB存储:connect-mongo vs connect-mongodb-session
- Jade不再接受没有JavaScript划定的内联variables?
- 错误:在Ubuntu上发布应用程序时,ENOENT,没有这样的文件或目录'/ var / www / html / views
- 你能创build一个快速路由处理程序的所有动词,还没有处理程序的给定端点?
- Jade看* .jade文件吗?