Nodejs搞后端怎么样?

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

Nodejs搞后端怎么样?

有没有 nodejs 写后端的大佬,报个错不能准确的提示到哪行错了,调试好恶心,怎么办?

21 回复

为啥不能 debug ,跟别的语言没区别。


挺好用。
只不过我不喜欢使用回调,性能虽然好,但是读起来会比较麻烦。 所以一直用 async/await

找不到哪行报错?建议上代码

为什么不能准确提示? 你用了 ts 么.

隐约感觉 op 是别的语言用习惯了,刚过来写 js ,不顺手

#2
同,我写 es6 的 js 都不习惯用回调

async await 好像在 debug 的时候无法定位到准确位置吧?

另外 nodejs 的 debug ,用 vscode 创建 launch 配置文件,简单查一下如何配置,并不是很难哦

别说哪行报错了…哪行的哪个位置不是都有吗…

回调这种东西 都是从阻塞 同步 一行一行代码执行 这种思维里面开始的

熟练点之后 回调和异步 非阻塞这种东西都是必然的

比如数据库 io 可能你习惯了阻塞操作等有了结果再下一步 很方便

但是这种代码实践肯定是不推荐的

我用 Node.js 写过 7 年后端,其中包括一些像交易系统之类的复杂业务,感觉还挺好用的。

前提是十分熟练掌握 JS 。因为 JS 是一个十分灵活的语言,所以对开发者要求很高,否则很容易写出存在缺陷或不容易 debug 的代码。

异步代码需要注意 catch 才能获得错误信息,不 catch 肯定不知道错误在哪;而且 Error 也需要准确构造和传递,否则也拿不到原始错误信息。

#7 async 和 await 是可以定位到准确位置的。

node 确认报错不优化,有时候还是底层的问题,不过拿来做轻量服务端美滋滋

有时候异步代码也 catch 不到, 比如

process.nextTick(() => {
throw new Error(‘boom’)
})

嘿嘿

最近正在用 ts 写后端的 node 。一行代码还没开始写,先配了 6 个配置文件。可能这就是新世纪的 java

https://www.v2ex.com/t/855252#reply0

已经卡了一天了,看敢不敢用哇。

大佬帮忙看看。

#12 我个人不大喜欢 TS ,平时也用得少,我更喜欢纯 JS+JSDoc ,写得够规范、IDE 够智能的话也可以完成 TS 那样的类型检查。如果用纯 JS 写的话,不用第三方 modules 甚至 0 配置文件就可以写个服务,比如我手写过一个 Gitlab 的 hook 服务,就一个 js 文件,直接 node 指令运行就可以了。

凡使用工具就一定会有收益和成本,对于 TS 来说,类型检查是收益,而配置麻烦就是成本,但好在企业生产中大多项目只需要配置一次,而且绝大多配置都可以通过 git 传递给其他协作者。

工具是用来解决问题的,不是用来引入更多麻烦的,按需要使用,没需求就没必要硬上。

写 nodejs 一定要会 promise ,async function ,不然写起来极其痛苦
报错是有提示的,除非是写的特别奇怪的代码(比如新手代码)

不要用回调的嵌套写法,一步到位直接学 async await
https://zh.javascript.info/async-await

#16 也不能说是痛苦,只能说是不爽

debug 这个,webstorm 直接可以啊

异常捕获的话,把 process 的 unhandledRejection 和 uncaughtException 都加上,否则有些异常捕获不到

不会吧,node 的话一般 tsc 做编译就行了,只需要一个 tsconfig

Node.js搞后端是一个非常流行且强大的选择。以下是对其特点的简要概述及代码示例:

Node.js后端开发优势

  1. 快速性能:Node.js的非阻塞架构和V8引擎使其能够提供高速性能,适合实时系统和数据密集型应用。
  2. 可扩展性:Node.js能够管理大量并发连接,适合处理高需求。利用微服务和模块,可以轻松扩展应用程序。
  3. 丰富的生态系统:Node.js拥有广泛的库和工具,可简化开发过程。

代码示例

以下是一个简单的Node.js后端示例,使用Express框架来处理HTTP请求:

const express = require('express');
const app = express();
const port = 3000;

app.use(express.json());
app.use(express.urlencoded({ extended: true }));

app.get('/', (req, res) => {
  res.send('Hello, World!');
});

app.post('/data', (req, res) => {
  const data = req.body;
  // 处理数据
  res.send('Data received');
});

app.listen(port, () => {
  console.log(`Server is running on http://localhost:${port}`);
});

总结

Node.js后端开发具有诸多优势,如高性能、可扩展性和丰富的生态系统。对于需要快速开发和高并发的应用场景,Node.js是一个值得考虑的选择。

回到顶部