我正在使用nodejs并表达api端点,我正在使用app.use
来处理路由,但无论我做什么,它都没有响应。
var express = require("express");
var mongoose = require('mongoose');
var path = require("path");
var favicon = require("serve-favicon");
var http = require('http');
var app = express();
var config = require('./conf/config');
var PORT = config.PORT;
mongoose.connect(config.MONGODB);
//route handlers
app.use('/', function(req, res) {
console.log("Hello");
});
var server = http.createServer(function(req, res) {
console.log("Request received", req.url);
});
server.listen(PORT);
console.log("Server running on port", PORT);
每当我在根路线上请求/
但是它没有做任何事情时,它应该在控制台上打印你好。
答案 0 :(得分:3)
您的Express代码不正确。您正在创建一个普通的Web服务器,但该Web服务器没有以任何方式连接到Express。如果您不想创建任何特殊类型的服务器(如https服务器),那么您可以让Express使用app.listen(PORT)
为您创建服务器,然后它将创建一个服务器并将其自身连接到该服务器服务器
我会建议:
var express = require("express");
var mongoose = require('mongoose');
var path = require("path");
var favicon = require("serve-favicon");
var app = express();
var config = require('./conf/config');
var PORT = config.PORT;
mongoose.connect(config.MONGODB);
//route handlers
app.get('/', function(req, res) {
console.log("Hello");
res.send("Hello");
});
app.listen(PORT);
console.log("Server running on port", PORT);
注意:我也改变了其他一些东西。我切换到app.get()
并插入res.send()
,因为您需要始终发送某种类型的浏览器响应才会等待并等待回来。
答案 1 :(得分:0)
尝试使用app.get
代替app.use
。后者用于安装子路由,使用中间件等,但不用于实际配置请求处理程序。