默认Node.js + Express.js不运行

时间:2014-03-06 05:14:16

标签: node.js web-applications express

我正在尝试学习使用nodejsexpressjs创建网络应用,按照the expressjs website上的入门指南,在使用快递(1)标题下生成应用

我使用express-generator插件生成了一个应用,运行npm install,然后尝试使用node app运行应用程序(我还尝试了node app.js以获得良好的衡量标准。运行这些命令时,终端没有输出。

我还尝试使用node debug app调试应用程序,结果如下:

< debugger listening on port 5858
connecting... ok
break in app.js:1
  1 var express = require('express');
  2 var http = require('http');
  3 var path = require('path');
debug> cont
program terminated
debug> cont
App isn't running... Try `run` instead
debug> 

我确实找到了一个文件bin/www,它似乎包含了启动服务器的代码,而且,确实运行node bin/www成功启动了应用程序。

我在这里缺少什么?

3 个答案:

答案 0 :(得分:43)

看起来启动应用的方式已经改变。而不是node app你现在应该做

npm start

此处有更多详情https://github.com/expressjs/generator

答案 1 :(得分:0)

某些node.js个应用可能会在您启动它们时尝试进行守护或分叉。

例如,haraka使用npm daemon模块。为了避免原始进程退出,您通常必须在应用程序中禁用守护程序模式,或者尝试使用调试程序repl来绕过守护程序的代码部分。

例如,haraka设置断点here

server.js:

  53 Server.daemonize = function () {
->54     var c = this.cfg.main;
  55     if (!c.daemonize) return;

然后:

  1. repl控制台
  2. 中输入debug>
  3. 输入this.cfg.main.daemonize = false
  4. 按一次Ctrl+c退出repl
  5. 继续调试......

答案 2 :(得分:-1)

我认为回答问题可能有点迟,但仍然添加app.listen()可以让应用程序直接由node app.js

启动

app.listen(port, function(){ console.log("Starting on port:",port) } )