ZCQ
日期:2021年1月25日
1.在命令行种运行Node.js脚本
运行Node.js程序的常规方法是,运行全局可用的node命令,(已安装Node.js)并传入要执行的文件的名称。
比如主Node.js应用程序文件时app.js,则可以通过键入以下命令调用它:
node app.js
当运行命令时,请确保位于包含app.js文件的目录中
如何从Node.js程序退出
在控制台运行程序时,可以使用ctrl-C将其关闭,但这里讨论的时以编程的方式退出
process核心模块提供了一种便利的方法,可以以编程的方式退出Node.js程序:process.exit().
当Node.js运行次代码是,进程会被立即强制终止。
这意味着任何待处理的回调、仍在发送中的任何网络请求、任何文件系统访问、或正在写入stdout或stderr的进程,所有这些都会被立即非正常地终止。
可以传入一个整数,向操作系统发出退出码:
process.exit(1)
默认情况下,退出码为0表示成功。
也可以设置process.exitCode属性:
process.exitCode=1
当程序结束时,Node.js会返回该退出码
当进程完成所有处理侯,程序会正常地退出。
使用Node.js启动服务器,例如HTTP服务器:
const express = require('express')
const app=express()
app.get('/',(req,res)=>{
res.send('你好')
})
app.listen(3000,()=>console.log('服务器已就绪'))
这个程序永远不会结束,如果调用process.exit(),则任何当前等待中或运行中的请求都会被中止。这不太友好。
在这种情况下,需要向该命令发出SIGTERM信号,并使用进程的信号处理程序进程处理:
注意:process不需要“require",它是自动可用的。
const express =require('express')
const app=express()
app.get('/',(req,res)=>{
res.send('你好')
})
const server=app.listen(3000,()=>console.log(‘服务器已就绪'))
process.on(’SIGTERM',()=>{
server.close(()=>{
console.log('进程已终止')
})
})
什么是信号?信号时一个POSIX内部通信系统:发送通知给进程,以告知其发生的事件。
SIGKILL是告诉进程要终止的信号,理想情况下,其行为类似于process.exit()
SIGTERM是告诉进程要正常终止的信号。它是从进程管理者(如upstart或supervisord)等发出的信号。
可以从程序内部另一个函数中发送此信号:
process.kill(process.pid,'SIGTERM')
或从另一个正在运行的Node.js程序,或从系统中运行的其他任何的应用程序。
如何从Node.js读取环境变量
Node.js的process核心模块提供了env属性,该属性承载了在启动进程时设置的所有环境变量。
这是访问NODE_ENV环境变量的示例,该环境变量默认情况下被设置为development.
注意process不需要require,它是自动可用的
process.env.NODE_ENV
在脚本运行之前将其设置为"production",则可告诉Node.js这是生产环境。
可以用相同的方式访问设置的任何自动逸的环境变量。
如何使用Node.js REPL
node命令是用来运行Node.js脚本的命令
node script.js
如果省略文件名,则在REPL模式中使用它:
node
注意:REPL也被称为运行评估打印循环,是一种编程语言环境(主要是控制台窗口),它使用单个表达式作为用户输入,并在执行侯将结果返回到控制台。