IT星球论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 217|回复: 0

express command not found 解决方案

[复制链接]

2004

主题

1

好友

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

优秀会员 助人为乐 辛勤工作 技术精英 多才多艺 优秀班竹 灌水天才 星球管理 宣传大使 灌水之王 财富勋章 版主勋章 动漫勋章 勤奋会员 论坛精英 PS高手 心 8 闪游皮肤 双鱼座 8★8➹ 志愿者 乖

发表于 2015-12-10 13:53:19 |显示全部楼层
express command not found 解决方案
今天看了一些nodejs,《nodejs开发指南》。看到了expres的时候,因为那本书用的express版本跟我的不一样,导致很多功能不能实现。所以就各种google,现在就把这个流程记录下来,遇见的bug和一些原理。
要玩express就要装nodejs,如果你的操作系统是centos6.5可以参考我之前写的博客CentOS6.5安装nodejs。IT论坛操作系统也大同小异,可以看Node Installation
Bug1 Express Command not found最初操作:跟着《nodejs开发指南》敲npm install -g express,安装好了,就在linux命令行敲express --help就出现上面的原因了。解决方法:在安装一个包npm install -g express-generator原因:express3+已经把创建一个app的功能分离出来为express-generator,没它你创建不了应用程序2 express -t ejs microblog创建的不是ejs模板引擎而是jade模板引擎最初操作:跟着《nodejs开发指南》在命令行敲express -t ejs microblog是用来创建应用程序的,应用程序的名字叫microblog、模板引擎是ejs出现情况:但是通过查看microblog文件夹中的package.json中知道创建出来的不是ejs模板而是jade模板引擎解决方法:版本不一样,用错命令了,应该是express -e microblog(-e就是ejs模板)3 node app.js没效果最初操作:跟着《nodejs开发指南》在命令行敲node app.js,然后就用浏览器访问监听的3000端口出现情况:访问不到页面解决方法:版本不一样,用错命令了,应该是npm startSummary其实简单入门式用express ejs模板步骤如下
  • npm install -g express && npm install -g express-generator
  • express -e microblog
  • cd microblog & make install
  • npm start
  • 浏览器访问localhost:3000
成功的页面如下:

想要更加具体了解,可以查看express帮助文档 Express Guide
Theory其实在之后我还遇见一个bug,这个不是版本的问题,就是我在linux重新开一个终端来输入命令的时候,当前目录是/home/monkindey/Desktop其实就是在桌面,当我输入npm start时候就报错了“Error:ENOENT,open'/home/monkindey/Desktop/package.json'”,当时我就觉得是不是要切换到express应用程序的目录去,果然,当切换到应用程序的目录中,再执行命令npm start就成功了。然后我就有了困惑了。
  • 第一、为什么我npm start要切换到应用程序的目录里才能执行
  • 第二、为什么我npm start的时候究竟是跑应用程序哪个文件?
下面让我来简单说一下
  • npm 是nodejs的包管理工具,可以使用它来下载包、查看文件等功能
  • 用express创建的应用程序是一个符合CommonJS规范的一个nodejs包
  • npm执行的时候会读取当前目录的package.json文件,这个也就是我上面那个bug出现的原因
  • 执行npm start其实是执行package.json中的script对应的对象中的start属性所对应的命令行,下面是我应用程序的package.json:
    所以其实如果吧package.json中的start改成monkindey或者IT论坛字符串,然后你在linux命令行敲上npm monkindey/或者IT论坛,程序照样会运行

其实package.json就是一个配置文件,只是我们之前用的xml格式,但是在nodejs用的是json可以,简单容易理解。从package.json我们可以看出来npm start其实执行的是./bin/www里面是创建一个服务器然后监听3000端口,所以我们可以在浏览器中通过输入"localhost:3000"来访问应用程序
ReferenceExpress command not found
node.js express npm start
Express Getting started
《nodejs开发指南》


转载自:http://www.myexception.cn/javascript/1663199.html
   

express command not found 解决方案

该会员没有填写今日想说内容.
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

回顶部