我是Node.js的学习者。
由于
答案 0 :(得分:1)
Express是一个在Node.js中创建Web服务器的框架。你不需要一个框架来编写node.js服务器,但像Express这样的框架使你的编程工作变得更加容易。
是否使用Express对启动节点服务器没有任何影响。
没有Express的简单node.js服务器:
// index.js
const http = require('http')
const port = 3000
const requestHandler = (request, response) => {
console.log(request.url)
response.end('Hello Node.js Server!')
}
const server = http.createServer(requestHandler)
server.listen(port, (err) => {
if (err) {
return console.log('something bad happened', err)
}
console.log(`server is listening on ${port}`)
})
运行node index.js
。
带有Express的简单node.js服务器
// index.js
const express = require('express')
const app = express()
app.get('/', function (req, res) {
res.send('Hello World!')
})
app.listen(3000, function () {
console.log('Example app listening on port 3000!')
})
由于此应用程序具有Express作为依赖项,因此必须安装Express。运行npm i express
以安装快速。
再次,使用node index.js
启动此服务器。
您会注意到这两个示例都在端口3000上启动HTTP服务器。如果计算机的防火墙允许端口3000上的连接,则人们可以访问http://<your_domain>:3000处的node.js服务器或http://<your_ip_address>:3000
如果端口3000被防火墙阻止,另一种可能性是用nginx代理你的node.js服务器。这具有使用nginx的功能进行初始连接的额外好处,例如TLS。
您还可以修改上面的代码,让node.js服务器在端口80上运行。如果计算机已经使用了端口80,那将无法工作,例如,如果apache,nginx等是已经运行。 Node.js也可以直接接受TLS(https)连接。
答案 1 :(得分:0)