dud*_*wad 49 javascript node.js npm express
我对Node非常陌生,并试图了解应用基础知识.我很好奇为什么这两个命令:
节点app.js
--vs--
npm开始
输出相同的东西到控制台,似乎继续"监听",但为什么当我尝试访问http:// localhost:3000时,我只在运行第一个命令时得到404.
我看到Express 4似乎有一个不同的应用程序结构,但为什么一个成功侦听而另一个没有,尽管在控制台中有相同的行为?
任何解释都有帮助.谢谢!
and*_*y88 46
这两个命令不一定相同.npm start运行任何'start'脚本配置说node app.js要按' package.json'中的定义运行,执行'node'中的'app.js'文件.有关详细信息,请参见http://browsenpm.org/package.json.所以如果你有以下package.json那么命令是完全不同的.
{
"name": "my cool node project",
....
"scripts": {
"start": "node index.js"
}
....
}
Run Code Online (Sandbox Code Playgroud)
以下package.json是你想要使它们相同的东西.
{
"name": "my cool node project",
....
"scripts": {
"start": "node app.js"
}
....
}
Run Code Online (Sandbox Code Playgroud)
我首先检查"启动"脚本设置为运行的内容,然后尝试直接在CLI中运行相同的命令,而不是通过NPM查看差异的位置.
但为什么一个人成功地倾听而另一个人没有
如果服务器返回404,则表示服务器正在侦听,但文档根目录或访问权限未正确设置,因此返回"未找到文件"响应.
除了以上答案,我还想补充一点:
这样做npm start,而不必scripts在你的部分package.json会导致npm寻求server.js在该目录中,如果发现来看,它采用node server.js否则它会抛出npm ERR! missing script: start的错误消息.
我还想补充一些东西,可能会对未来的观众有所帮助
首先
节点- 是任何 javascript 代码的运行时
NPM 是包管理器,可用于下载/更新/运行包等等,由 3 项组成
阅读此处了解它为您所做的一切。
node any.js - 这将简单地运行 javascript 文件“any,js”。所以如果那里没有启动服务器的代码,你会得到错误
npm start - 将运行 package.json 中的 start 命令。对于非常基本的示例,如果下面是 package.json 中的启动脚本
它只会在控制台上打印“Hello”。
如果您使用 CRA 创建 React 应用程序,您通常会在本节中有“ react-scripts start ”。设置开发环境并启动服务器,以及热模块重新加载
这就是你在这种情况下不会出错的原因
| 归档时间: |
|
| 查看次数: |
36511 次 |
| 最近记录: |