如果我更改端点,中间件不起作用
我的NodeJs - Express服务器有一个奇怪的问题,它作为我的移动应用程序的后端。问题是我发送邮件请求到某些端点,如checkmail,使用axios的前端checkusername,它可以工作,但问题是它不适用于任何其他中间件功能。我真的复制了相同的checkmail,只是使用了不同的路由,我得到状态404,而/ checkmail它的工作原理!此外/ login不起作用,我在那里使用express.Router。这是我的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.use("/checkmail", (req,res,next)=>{
//do something
})
如果我更改端点,中间件不起作用
我的NodeJs - Express服务器有一个奇怪的问题,它作为我的移动应用程序的后端。问题是我发送邮件请求到某些端点,如checkmail,使用axios的前端checkusername,它可以工作,但问题是它不适用于任何其他中间件功能。我真的复制了相同的checkmail,只是使用了不同的路由,我得到状态404,而/ checkmail它的工作原理!此外/ login不起作用,我在那里使用express.Router。这是我的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.use("/checkmail", (req,res,next)=>{
//do something
})