Nodejs express 中的路由问题,望高人指点
Nodejs express 中的路由问题,望高人指点
在网上我看到有路由的用例
app.get('/polls/polls', routes.list);
app.get('/polls/:id', routes.poll);
app.post('/polls', routes.create);
一般都是写到 app.js 中的,
我想把 polls 下的这三个请求写到一个 polls.js 的路由文件中。我在 app.js 中写的是:
app.use('/polls', polls);
polls.js 里:
router.get('/polls', function(req, res, next) {
});
router.get(’/:id’, function(req, res, next) {});
router.post(’/’, function(req, res, next){});
我测试第二个有 id 的接口,无法路由到。 请问这种写法可以吗?
可以使用 Express.Router.
在 polls.js 文件中这样写
const express = require(‘express’);
var router = express.Router();
router.get("/" ,(req,res) =>{
//todo
});
//其他类同
exports.routers = router;
我记得好像第二种写法有一个额外的 require ?
上面写法没错,不过建议改成这样
POST/GET /polls
GET /polls/:id
在Node.js中使用Express框架处理路由问题是一个常见的需求。下面是一个简单的示例,展示如何设置和使用路由。
首先,确保你已经安装了Express。如果还没有安装,可以使用npm进行安装:
npm install express
然后,你可以创建一个基本的Express应用,并设置一些路由。以下是一个示例代码:
const express = require('express');
const app = express();
const port = 3000;
// 定义一个基本的GET路由
app.get('/', (req, res) => {
res.send('Hello, World!');
});
// 定义一个带参数的GET路由
app.get('/user/:id', (req, res) => {
const userId = req.params.id;
res.send(`User ID: ${userId}`);
});
// 定义一个POST路由
app.post('/login', express.json(), (req, res) => {
const { username, password } = req.body;
// 这里可以进行身份验证逻辑
res.send('Login successful');
});
app.listen(port, () => {
console.log(`Server is running at http://localhost:${port}`);
});
在上面的代码中,我们定义了三个路由:
- 一个基本的GET路由,访问根路径时返回"Hello, World!"。
- 一个带参数的GET路由,访问
/user/:id
时返回用户ID。 - 一个POST路由,处理登录请求,并假设请求体为JSON格式。
运行这个代码后,你可以在浏览器中访问相应的路径,或者使用工具如Postman来测试POST请求。希望这个示例能帮助你解决Node.js Express中的路由问题。