用于退出的命令是什么?(即终止Node.js进程)


当前回答

我可以通过键入taskkill-F-IM node.exe,让我的所有节点进程直接从Windows 10上的Git Bash shell中消亡-这将立即结束我计算机上的所有节点过程。我发现我也可以使用taskkill//F//IM node.exe。不确定为什么-和//在这种情况下都有效。希望这有帮助!

其他回答

节点js中的退出有两种方式:

显式调用process.exit()。或者,如果nodejs事件循环完成了所有任务,并且没有任何事情可做。那么,节点应用程序将自动退出。

它是如何工作的?

如果你想强制执行循环停止进程,你可以使用全局变量进程,它是EventEmitter的一个实例。因此,当调用process.exit()时,实际上会发出退出事件,该事件会立即结束所有任务,即使仍有异步操作未完成。

process.exit()将退出代码(整数)作为参数。代码0是默认值,这意味着它将以“成功”退出。而代码1表示它以“失败”退出。

我可以通过键入taskkill-F-IM node.exe,让我的所有节点进程直接从Windows 10上的Git Bash shell中消亡-这将立即结束我计算机上的所有节点过程。我发现我也可以使用taskkill//F//IM node.exe。不确定为什么-和//在这种情况下都有效。希望这有帮助!

打开运行节点应用程序的命令行终端,然后按Ctrl+C

如果要从代码中退出node js应用程序,

process.exit(); // graceful termination 
process.exit(1); // non graceful termination 
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之后的任何代码

在命令行中,.ext是您想要的:

$ node
> .exit
$

它记录在REPL文档中。REPL(Read Eval Print Loop)是Node命令行的名称。

在正常程序中,使用process.ext([code])。