如何在Express中找到路线?

时间:2019-03-26 11:07:17

标签: reactjs express

我正在使用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'”

1 个答案:

答案 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