要设计一个Nodejs接口,大家觉得哪种看上去舒服点?

发布于 1周前 作者 yuanlaile 来自 nodejs/Nestjs

要设计一个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,大家喜欢哪一种? 大家觉得流行风格会不会变?


11 回复

当然链式调用更香啦


我喜欢 async / await …

老实用 Promise 不好么……

我喜欢 async / await …

写成 Promise,然后觉得 then 不好用可以 async await。

用 callback 转 Promise 转 await,最终用 await

这个节点下的代码块样式有点影响体验啊
另外发现这个节点下评论输入框 focus 的时候 背景会变白
不知道是 Bug 还是 Feature

在设计一个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使用者的需求。保持一致性是关键。

回到顶部