我正在使用Express并尝试检查登录凭据,当我使用没有路由的发布请求时,它可以正常工作。但是,我在使用快速路线时遇到错误。
这是我的index.js代码
const app = express();
app.use(bodyParser.json());
mongoose.connect("mongodb://localhost/bookworm", { useNewUrlParser: true });
console.log("post request");
app.use("api/auth", auth);
app.get("/*", (req, res) => {
res.sendFile(path.join(__dirname, "index.html"));
});
app.listen(8080,()=> console.log(“在localhost上运行:8080”));
routes / auth.js代码
const router = express.Router();
router.post("/", (req, res) => {
res.status(400).json({ errors: { global: "Invalid Credentials" } });
});
我期望400:无效的凭据。但我越来越 “ TypeError:无法读取未定义的属性'global'”
答案 0 :(得分:0)
似乎您没有让app
知道它必须在某些端点中使用router
。
import express from 'express'
const app = express()
const router = express.Router()
router.post('/', (req, res) => {
res.status(401).json({ errors: { global: "Invalid Credentials" } });
})
app.use('api', router)
app.listen(8080, () => console.log('listening on 8080'))
现在,您可以像这样调用端点:http://localhost:8080/api
发出POST
请求,它应该返回401错误
此处有更多信息:https://expressjs.com/en/guide/routing.html#express-router