用于退出的命令是什么?(即终止Node.js进程)
当前回答
节点js中的退出有两种方式:
显式调用process.exit()。或者,如果nodejs事件循环完成了所有任务,并且没有任何事情可做。那么,节点应用程序将自动退出。
它是如何工作的?
如果你想强制执行循环停止进程,你可以使用全局变量进程,它是EventEmitter的一个实例。因此,当调用process.exit()时,实际上会发出退出事件,该事件会立即结束所有任务,即使仍有异步操作未完成。
process.exit()将退出代码(整数)作为参数。代码0是默认值,这意味着它将以“成功”退出。而代码1表示它以“失败”退出。
其他回答
从nodejs.org官方文档中:
process.exit(code)
使用指定的代码结束进程。如果省略,退出将使用“成功”代码0。
要退出并显示“失败”代码:
process.exit(1);
如果您在Windows中,请转到任务管理器,然后转到进程,查找名为“节点”的进程,然后用鼠标右键单击它,然后单击“结束进程”选项。
import mongosse from 'mongoose'
import dotenv from 'dotenv'
import colors from 'colors'
import users from './data/users.js'
import products from './data/products.js'
import User from './models/userModel.js'
import Product from './models/productModel.js'
import Order from './models/orderModel.js'
import connectDB from './config/db.js'
dotenv.config()
connectDB()
const importData = async()=>{
try{
await Order.deleteMany()
await Product.deleteMany()
await User.deleteMany()
const createdUsers = await User.insertMany(users)
const adiminUser = createdUsers[0]._id
sampleProducts = products.map(product =>{
return {...product, user:adiminUser }
})
await Product.insertMany(sampleProducts)
console.log('Data Imported!'.green.inverse)
process.exit() //success and exit
}catch(error){
consolele.log(`${error}`.red.inverse)
process.exit(1) //error and exit
}
}
所以这里我在db和try块中填充了一些集合,如果我没有得到任何错误,那么我们会用一条成功消息退出它,因此我们使用process.exit(),但参数中没有任何内容。如果出现错误,那么我们需要退出并返回一条失败消息,因此我们在参数中传递1,例如process.ext(1)。
额外:这里的退出意味着退出典型的nodejs程序。例如,如果此代码位于名为dbOperations.js的文件中,则process.exit将退出,并且不会运行process.exit之后的任何代码
我有一个应用程序,我想:
向用户发送电子邮件退出并返回错误代码
我必须将process.ext(代码)挂接到退出事件处理程序,否则邮件将不会被发送,因为调用process.ext(代码)直接杀死异步事件。
#!/usr/bin/nodejs
var mailer = require('nodemailer');
var transport = mailer.createTransport();
mail = {
to: 'Dave Bowman',
from: 'HAL 9000',
subject: 'Sorry Dave',
html: 'Im sorry, Dave. Im afraid I cant do <B>THAT</B>.'
}
transport.sendMail(mail);
//process.exit(1);
process.on('exit', function() { process.exit(1); });
调用全局进程对象的退出方法:
process.exit()
从文档中:
process.ext([exitcode])使用指定的代码结束进程。如果省略,则退出并返回“成功”代码0。要退出并显示“失败”代码:进程.退出(1);执行节点的shell应该看到退出代码为1。
推荐文章
- 错误:无法找到模块“webpack”
- 在node.js中使用async / await文件系统
- NodeJS -用NPM安装错误
- 如何为本地安装npm包设置自定义位置?
- 回调函数来处理管道的完成
- Express函数中的“res”和“req”参数是什么?
- node.js TypeError:路径必须是绝对路径或指定根路径到res.sendFile[解析JSON失败]
- Passport.js -错误:序列化用户到会话失败
- Node.js vs .Net性能
- 从电子应用程序中删除菜单栏
- 如何用node.js实现一个安全的REST API
- 如何处理Node.js中的循环依赖
- 在猫鼬,我如何排序的日期?(node . js)
- 如何在Node.js内进行远程REST调用?旋度吗?
- 如何用分发文件发布npm包?