【发布时间】:2019-02-10 00:47:42
【问题描述】:
我的 NodeJs - Express 服务器有一个奇怪的问题,它充当我的移动应用程序的后端。 问题是我使用 axios 从前端向某些端点发送 post 请求,例如 checkmail、checkusername 并且它可以工作,但问题是它不适用于任何其他中间件功能。我从字面上复制了相同的检查邮件,只是使用了不同的路线,我得到状态 404,而使用 /checkmail 它可以工作! 另外, /login 不起作用,我使用的是 express。路由器在里面。 这是我的 app.js 代码:
const express = require("express");
const mongoose = require("mongoose");
const bodyParser = require("body-parser");
var cors = require("cors");
const User = require("./models/user");
var AuthController = require('./auth/authController');
const app = express();
let server = require("http").Server(app);
app.use(cors());
app.use(
bodyParser.urlencoded({
extended: true
})
);
app.use(bodyParser.json());
//Check if e-mail is aready in use, return "success" if not
app.use("/signup", (req, res) => {
User.findOne({
email: req.body.email
},
function (err, user) {
if (user) {
res.send("error");
} else {
res.send("success");
}
}
);
});
//Check if e-mail is aready in use, return "success" if not
app.use("/checkmail", (req, res) => {
User.findOne({
email: req.body.email
},
function (err, user) {
if (user) {
res.send("error");
} else {
res.send("success");
}
}
);
});
app.use('/login', AuthController);
const port = process.env.PORT || 8500;
server.listen(port, () => { });
【问题讨论】:
-
如果这些是发布请求,为什么不直接使用
app.post()? -
我也试过了,没用。我终于设法通过使用路由器和单独的控制器以及 /user/signup 来获得它们。
标签: javascript html node.js express middleware