为我的个人项目学习nodej.分析其他开发人员的代码示例,观看youtube视频.我注意到一件我不完全理解的事情,为什么我遇到的大多数nodejs示例都有一个用于http服务器启动和端口监听的代码部分?但应用程序本身不使用任何与http相关的东西,比如处理http请求/响应.例如:

const express = require('express')
const path = require('path')
const http = require('http')
const cors = require('cors')


const PORT = process.env.PORT || 5000
const app = express();
const server = http.createServer(app).listen(PORT, () => console.log(`Listening on ${PORT}\n`))
app.use(express.static(path.join(__dirname, 'public')))
app.use(cors({ credentials: true, origin: '*' }))

如果我的nodejs应用程序是一个需要在服务器端运行的脚本,它从其他API收集一些信息并存储在数据库中,等等,那么我还需要创建并启动HTTP服务器吗?

推荐答案

为什么我遇到的大多数nodejs示例都有http服务器启动和端口侦听的代码部分?

因为这就是人们大多数时候使用nodejs的方式:作为web服务器.这并不意味着这是强制性的,甚至不是一个好的做法.

我需要创建并启动HTTP服务器吗?

当然不是.如果你不需要,为什么要这么做?不要担心教程或示例,它们不了解您的 case 和需求.

Node.js相关问答推荐

DocuSign:调用createEntaine时,RequestJWTApplicationToken返回401 AUTHORIZATION_INVALID_TOKEN

FindOne()返回所有值,而不是一个值

类扩展值[object object]不是构造函数或null

如何获取mongoose中单个id数据的记录

NodeJS:zlib.gzipSync 在不同平台上给出不同的明文输出

无法截取页面截图

module.exports=require('other') 和临时变量有什么区别?

将环境变量从 GitHub 操作传递到 json

更新文档数组中的文档 Mongoose

强制 TypeScript 生成带有.js扩展名的导出/导入;运行 node 16?

如何使用来自前一阶段的另一个数组的聚合mongoose 在数组中添加字段

Firestore promise 在退货前等待产品详细信息

Cassandra node.js 驱动程序有替代品吗?

什么是nestjs错误处理方式(业务逻辑错误vs.http错误)?

使用 Socket.io 将客户端连接到服务器

使用 Webpack 和 font-face 加载字体

User.findOrCreate 函数是做什么的,什么时候在Passport 中调用它?

在 Jade 包含中使用变量

Mongoose - 保存字符串数组

node --experimental-modules,请求的模块不提供名为的导出