![](/img/trans.png)
[英]Node.js & Express: How to create many app.get calls with Express.js through “for loop”?
[英]app#get() not doing anything, (node.js + express.js)
我最近今天想切换到表达 4.x 科学,因为我使用 3.xa 的时间比需要的时间长。
基本上我做了一个非常简单的应用程序,但 app#get() 根本不起作用!
这是我的代码:
/** Declaring constants */
const config = require( "./config.json" );
const methods = require( "./depending_methods.js" );
const sessions = new Map( );
const express = require( "express" );
const path = require( "path" );
const bodyParser = require( "body-parser" );
const app = express();
let currentdata;
/**
* some mongodb stuff ##redacted
*/
/** Configuration Express + HBS and Middleware */
app.use(require('morgan')("dev"))
app.use(bodyParser.json());
app.use(require( "cookie-parser" ));
app.use(express.static('static'));
app.use('./views', express.static(path.join(__dirname, './views')));
app.use(express.static(path.join(__dirname, './views')));
app.use(bodyParser.urlencoded({ extended: false }));
app.set('view engine', 'hbs');
app.set('views', path.join(__dirname, 'views'));
require('hbs').registerHelper(require('handlebars-helpers')());
console.log("registered get()")
app.get("/", function(req, res) {
console.log("triggered /");
res.send("Hey");
})
/** Configure port and start the Server! */
app.listen(config.port);
console.log("skynet is on: http://127.0.0.1:" + config.port + "/");
当我尝试访问 127.0.0.1:[port]/ 或执行 curl 请求时:
“触发的/”不会发生,但开始时的“注册的get()”会发生。
我还在控制台中得到了强制性的“GET / - - ms - -”
我做错了什么?
app.get("/", function(req, res) {
console.log("triggered /");
res.send("Hey");
});
意味着您必须向http://127.0.0.1:[whatever-port-you-use]/发出 GET http 请求才能触发回调函数; 这是由 URL 末尾的/
表示的root
路由。
更新
经过澄清和进一步审查,问题出在以下线路上:
app.use(require( "cookie-parser" ));
正确的写法是:
app.use( (require( "cookie-parser" ))() );
//see (..) surrounding require and () after it
或者,您可以分两步完成,如cookie-parser页面所示:
const cookieParser = require( "cookie-parser" );
app.use( cookieParser() ); //NOT app.use( cookieParser );
笔记
我还建议您阅读其他模块的文档。
你的问题和这个很相似。 正如他们所说,摩根包在控制台中打印“GET / - - ms - -”。 您没有被“触发/”的原因可能是您或您的包之一忘记调用 next()。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.