当前位置: 首页 > 面试题库 >

使用gulp运行命令以启动Node.js服务器

姜磊
2023-03-14
问题内容

因此,我使用的是gulp-exec(https://www.npmjs.com/package/gulp-
exec
),在阅读了一些文档后,它提到如果我只想运行命令,则不应使用该插件,利用我在下面尝试使用的代码。

var    exec = require('child_process').exec;

gulp.task('server', function (cb) {
  exec('start server', function (err, stdout, stderr) {
    .pipe(stdin(['node lib/app.js', 'mongod --dbpath ./data']))
    console.log(stdout);
    console.log(stderr);
    cb(err);
  });
})

我试图让gulp启动我的Node.js服务器和MongoDB。这就是我想要完成的。在我的终端窗口中,它抱怨我

.pipe

但是,我对gulp并不陌生,我认为那是您如何通过命令/任务进行传递的方式。任何帮助表示赞赏,谢谢。


问题答案:
gulp.task('server', function (cb) {
  exec('node lib/app.js', function (err, stdout, stderr) {
    console.log(stdout);
    console.log(stderr);
    cb(err);
  });
  exec('mongod --dbpath ./data', function (err, stdout, stderr) {
    console.log(stdout);
    console.log(stderr);
    cb(err);
  });
})

供以后参考,以及是否有人遇到此问题。

上面的代码解决了我的问题。因此,基本上,我发现上述内容是它自己的功能,因此不需要:

.pipe

我以为这段代码:

exec('start server', function (err, stdout, stderr) {

是我正在运行的任务的名称,但这实际上是我将要运行的命令。因此,我将其更改为指向运行我的服务器的app.js,并做了同样的操作以指向我的MongoDB。

编辑

正如下面提到的@ N1mr0d,没有服务器输出,一种更好的运行服务器的方法是使用nodemon。您可以nodemon server.js像奔跑一样简单地奔跑node server.js

下面的代码段是我在gulp任务中使用nodemon现在运行服务器的内容:

// start our server and listen for changes
gulp.task('server', function() {
    // configure nodemon
    nodemon({
        // the script to run the app
        script: 'server.js',
        // this listens to changes in any of these files/routes and restarts the application
        watch: ["server.js", "app.js", "routes/", 'public/*', 'public/*/**'],
        ext: 'js'
        // Below i'm using es6 arrow functions but you can remove the arrow and have it a normal .on('restart', function() { // then place your stuff in here }
    }).on('restart', () => {
    gulp.src('server.js')
      // I've added notify, which displays a message on restart. Was more for me to test so you can remove this
      .pipe(notify('Running the start tasks and stuff'));
  });
});

链接安装Nodemon:https
://www.npmjs.com/package/gulp-nodemon



 类似资料:
  • 我想使用从gulp运行shell命令。我看到下面这个成语被用于gulpfile。 这是从吞咽任务中运行命令的惯用方法吗?

  • 问题内容: 我想在Ubuntu启动时运行一个命令(在任何人登录之前): 我该怎么做? 问题答案: 您可以在启动结束时执行的脚本中添加命令。 在之前编写命令。之后写的任何内容都将永远不会执行。

  • 问题内容: 我使用 GitHub Electron 使用Web技术创建桌面应用程序。 我正在用作服务器,我的问题是我不知道如何仅在启动电子应用程序时运行文件。 我想打包我的应用程序以进行 分发, 以便 无需命令行 即可运行 服务器。 问题答案: 只需简单的在你的主文件的文件(例如): 在文件中,您可以拥有:

  • 我是Apache Kafka的新手,我试图从windows机器上运行.\bin\windows\kafka-server-start.bat.\config\server.properties命令来启动Kafka服务器,但我没有得到命令提示符屏幕的任何响应,既没有任何错误消息,也没有任何成功消息,它只是把我扔到了一个新的命令行。虽然我能够成功运行Zookeeper服务器。我已经正确地更新了serv

  • 我将vault与我的Spring启动应用程序集成在一起,我面临着一个非常奇怪的问题。当我运行我的应用程序使用 运行成功但是当我使用 我得到以下例外。 有谁能给我简单描述一下两者的区别吗?非常感谢。

  • 问题内容: 我无法让我的SSL服务器与Godaddy的证书一起使用 使用Express:3.1.0 在此之下,可以使用本地生成的密钥/ crt /未经go daddy签名的密钥/ crt(浏览器会抱怨,但是如果添加异常,它将起作用。 通过Godaddy,我提供了一个额外的文件gd_bundle.crt,我相信您可以像这样实现,但是我遇到了错误 通过这种配置,我得到:错误107(net :: ERR