要设计一个Nodejs接口,大家觉得哪种看上去舒服点?
要设计一个Nodejs接口,大家觉得哪种看上去舒服点?
刚注意到代码在 node.js 节点下很丑,大家克服一下
A: 连写型
db.upsert('article', {
id : 1
, title : 'Hello world'
, poster : 'kris'
, visit : 100
}).error(function(err) {
...
}).done(function(count) {
...
})
db.remove(‘article’, { id: 1 })
.error(function(err) {
…
})
.done(function() {
…
})
db.find(‘article’, {poster : ‘kris’})
.between(‘visit’, 100, 200)
.range(100, 200)
.done(function(err, rows, count) {
…
})
B: 回调型
oncedb.upsert('article', {
id : 1
, title : 'Hello world'
, poster : 'kris'
, visit : 100
}, function(err) {
...
})
db.remove(‘article’, { id: 1 }, function(err) {
…
})
db.find(‘article’, {poster : ‘kris’}, function(err, rows) {
if (err) {
console.log(err)
return
}
console.log(rows)
}, { between: [‘visit’, 100, 200], range: [0, 100] })
看到现在很多库都用 A,node.js 标准 API 基本上是 B,大家喜欢哪一种? 大家觉得流行风格会不会变?
我喜欢 async / await …
老实用 Promise 不好么……
promise +1
我喜欢 async / await …
async await
写成 Promise,然后觉得 then 不好用可以 async await。
用 callback 转 Promise 转 await,最终用 await
async await
在设计一个Node.js接口时,选择一种既清晰又高效的风格非常重要。通常,RESTful风格是构建Web API的流行选择,因为它简洁且易于理解。以下是一个使用Express框架实现的Node.js接口示例,展示了GET和POST请求的两种常见风格:
风格一:传统RESTful风格
const express = require('express');
const app = express();
const port = 3000;
app.get('/api/users', (req, res) => {
res.json([{ id: 1, name: 'John Doe' }, { id: 2, name: 'Jane Smith' }]);
});
app.post('/api/users', (req, res) => {
const newUser = req.body;
// 假设已保存到数据库
res.status(201).json({ id: 3, ...newUser });
});
app.listen(port, () => {
console.log(`Server running at http://localhost:${port}`);
});
风格二:带有详细状态码和消息的响应风格
app.get('/api/users', (req, res) => {
const users = [{ id: 1, name: 'John Doe' }, { id: 2, name: 'Jane Smith' }];
res.status(200).json({ status: 'success', data: users });
});
app.post('/api/users', (req, res) => {
const newUser = req.body;
// 假设已保存到数据库
res.status(201).json({ status: 'created', data: { id: 3, ...newUser } });
});
个人建议:风格二通过添加status
字段,使响应更加明确和易于调试。然而,选择哪种风格最终取决于你的团队偏好和API使用者的需求。保持一致性是关键。