【问题标题】:I cannot use npm start to start an express server on windows我无法使用 npm start 在 Windows 上启动 express 服务器
【发布时间】:2014-06-22 04:12:43
【问题描述】:

我是节点新手。我正在尝试运行快速服务器。安装 express 时我没有收到任何错误,但是当我运行 npm startnode app 时(正如所有初学者教程所指出的那样)似乎什么都没有发生。我可以启动服务器的唯一方法是输入node /bin/www。我的操作系统是Windows。有什么建议吗?

【问题讨论】:

  • 您是否创建了一个包含您的代码的app.js 文件,然后在命令行上执行> node app.js
  • 我在安装 express 后运行 express myapp,它会自动创建 app.jsnode app.js 只是输出一个空行,然后提示我进入我的工作目录。

标签: node.js express npm


【解决方案1】:

Express 脚手架脚本会生成一个 package.json 文件,其中包含一个指向它还创建的 app.js 文件的启动脚本字段。自 Express 4 发布以来,脚手架生成器脚本已移至其自己的包中。 https://github.com/expressjs/generator

npm start 所做的只是在 package.json 文件中查找要传递给节点的启动脚本。你可以在the documentation看到这个。

使用这样的 package.json 运行 npm start

"scripts": {
    "start": "app.js"
}

完全等同于运行node app.js

【讨论】:

  • 感谢亚历克斯的回答。我想我明白这一切是如何运作的。我只是想知道为什么我不能通过运行npm startnode app.js 来启动服务器,因为这是按照代码的逻辑预期的。也许我搞砸了 node.js 安装。但这似乎很简单。我安装了windows版本(自动添加了PATH变量),检查它是否安装(node -v),全局安装express,运行express myapp然后npm start,它似乎运行node ./bin/www但随后立即提示我我的工作目录。
【解决方案2】:

我设法通过更改 cmd-dos 的代码页解决了我的问题。通过在 cmd 中使用 chcp 850 or chcp 65001 从而将代码页更改为 latin - utf8,问题就消失了。

【讨论】:

    猜你喜欢
    • 2021-03-20
    • 1970-01-01
    • 1970-01-01
    • 2015-08-19
    • 1970-01-01
    • 1970-01-01
    • 2020-12-21
    • 2017-03-21
    • 1970-01-01
    相关资源
    最近更新 更多