我刚开始使用nodejs后端,所以这可能是一个愚蠢的问题。
小信息
我有我的客户端(localhost:8080)和server.js(localhost:3000)。我为server.js
做了一些路由(请参见下面的文件)。
问题
现在,如果我尝试访问服务器上的路由,例如localhost:3000/users/4
,我得到了预期的结果-创建了4个假用户。但是,如果我尝试将后缀users/4
附加到客户端(localhost:8080/users/4
),则会出现错误! Cannot GET /users/4
。同样,如果尝试其他路线之一,也会得到cannot GET *SOMETHING*
。
我误解了吗?我是否应该能够将路由附加到客户端网址,然后再次获得响应(响应)? (只要服务器正常运行,或者这不是它的工作方式?)。如果有人可以阐明它的工作原理,那将是很可爱的。
routes.js (我的所有路由都保存在一个文件中)
var faker = require("faker");
var appRouter = function (app) {
app.get("/", function (req, res) {
res.status(200).send({ message: 'Welcome to our restful API' });
});
app.get("/user", function (req, res) {
var data = ({
firstName: faker.name.firstName(),
lastName: faker.name.lastName(),
username: faker.internet.userName(),
email: faker.internet.email()
});
res.status(200).send(data);
});
app.get("/users/:num", function (req, res) {
var users = [];
var num = req.params.num;
if (isFinite(num) && num > 0 ) {
for (i = 0; i <= num-1; i++) {
users.push({
firstName: faker.name.firstName(),
lastName: faker.name.lastName(),
username: faker.internet.userName(),
email: faker.internet.email()
});
}
res.status(200).send(users);
} else {
res.status(400).send({ message: 'invalid number supplied' });
}
});
};
module.exports = appRouter;
Server.js
var express = require("express");
var bodyParser = require("body-parser");
var routes = require("./routes/routes.js");
var app = express();
const server_port = process.env.PORT || 3000;
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
routes(app);
var server = app.listen(server_port, function () {
console.log("app running on port.", server.address().port);
});
答案 0 :(得分:0)
对我来说,该方法在(例如)http://127.0.0.1:8081/testit/35 ::
app.get('/testit/:bid', function(req, res){
res.send('testit' + req.params.bid);
});
我建议您减少问题。因此,从与我的路线相似的路线开始,然后从那里开始。