mac下node.js 安装express后报express command not found
使用brew安装node的时候会自动帮你安装npm,所以npm不用单独去安装,当然如果你想安装最新版本,可以去官网下pkg包安装,http://nodejs.org/
Shell
brew install node
brew install node |
这个步骤node和npm就都安装好了
Shell
sudo npm install -g express
sudo npm install - g express |
全局安装express -g 是全局安装,如果想指定版本安装可以用sudo npm install -g express@4.9.0
注意上面安装的不是命令行工具express(老版本是集成在一起的,现在express4版本,单独分离出来了,放到express-generator包中),而是安装的这个模块,需安装命令行工具需再安装,
Shell
sudo npm install -g express-generator
sudo npm install - g express - generator |
然后就可以使用express命令了,我是官网下载安装的,所以node和npm的路径是 /usr/local/bin 下
Shell
54im@IvonMac ~$express -V 4.9.0 54im@IvonMac ~$node -v v0.10.33 54im@IvonMac ~$npm -v 1.4.28 54im@IvonMac ~$which node /usr/local/bin/node
54im @ IvonMac ~ $express - V 4.9.0 54im @ IvonMac ~ $node - v v0 . 10.33 54im @ IvonMac ~ $npm - v 1.4.28 54im @ IvonMac ~ $which node / usr / local / bin / node |
express 是 Node.js 上最流行的 Web 开发框架,正如他的名字一样,使用它我们可以快速的开发一个 Web 应用。我们用 express 来搭建我们的博客,用 express 初始化了一个工程项目,并指定使用 ejs 模板引擎express -e ejs blog
生成.ejs 的模板引擎,项目名为blog的项目
附录
express4.x新特性
- 健壮的路由系统
- 包含 HTTP helpers (跳转, 缓存等)
- 试图系统支持超过 14 中模板引擎
- Content negotiation
- 专注高性能
- 基于 environment 的配置
- 项目框架生成命令行工具
- 测试全面
express3.x 迁移到 express4.x
译文原址: http://segmentfault.com/blog/gucheen/1190000000603327
原文: https://github.com/strongloop/express/wiki/Migrating-from-3.x-to-4.x
Express 3.x 到 4.0 的迁移指南。你可能对这篇文章也有兴趣 4.x版中的新功能 。
更多的例子和完整的API文档,请参见 Express 4.x 的文档 。
概述
Express 4 不再依赖 Connect 。这意味着所有捆绑的中间件(除了 static
)都不再能从 express
模块中被调用。这些中间件都可以作为下面提及的模块进行调用。这一变化是为了让这些中间件在获取修复,更新和发布的同时不影响 express 的发布周期,反之亦然。
- bodyParser body-parser
- cookieParser cookie-parser
- favicon static-favicon
- session express-session
其他模块在这里 https://github.com/senchalabs/connect#middleware
移除
app.configure()
这种方法不再可用。如果你想配置基于环境的不同路由,使用 if 语句或替代模块。
Shell
app.configure('development', function() { // configure stuff here }); // 现在改为 var env = process.env.NODE_ENV || 'development'; if ('development' == env) { // configure stuff here }
app .configure ( 'development' , function ( ) { / / configure stuff here } ) ; / / 现在改为 var env = process .env .NODE_ENV || 'development' ; if ( 'development' == env ) { / / configure stuff here } |
app.router
这个中间件已经全面改版,以此避免 .use
同 .get
之间的混淆(或者是其他HTTP动作),同时,不再需要手动声明的 app.use(app.router)
(已被移除)。查看下面关于新的中间件和路由 API 的一节。
如果你的代码看起来像这样:
Shell
app.configure('development', function() { // configure stuff here }); // 现在改为 var env = process.env.NODE_ENV || 'development'; if ('development' == env) { // configure stuff here }
app .configure ( 'development' , function ( ) { / / configure stuff here } ) ; / / 现在改为 var env = process .env .NODE_ENV || 'development' ; if ( 'development' == env ) { / / configure stuff here } |
app.router
已被移除,中间件和路由按照它们添加的顺序被执行。在你的代码中,你应该将原本在 app.use(app.router)
之后的向 app.use
的请求移动到其他路由之后(HTTP动作)。
Shell
app.use(cookieParser()); app.use(bodyParser()); /// 其他的中间件,并没有影响 app.use(app.router); // <--- 这行会被移除 // 更多的中间件(在路由之后执行) app.use(function(req, res, next); // 处理错误的中间件 app.use(function(err, req, res, next) {}); app.get('/' ...); app.post(...);
app .use ( cookieParser ( ) ) ; app .use ( bodyParser ( ) ) ; / / / 其他的中间件,并没有影响 app .use ( app .router ) ; / / < -- - 这行会被移除 / / 更多的中间件(在路由之后执行) app .use ( function ( req , res , next ) ; / / 处理错误的中间件 app .use ( function ( err , req , res , next ) { } ) ; app .get ( '/' . . . ) ; app .post ( . . . ) ; |
express.createServer()
长期弃用。现在只要使用`express()’创建一个新的应用。
connect 中间件
除了 express.static
为了便捷性直接封装在 express 中,其他所有 connect 的中间件都被分离到了独立的模块中。由此,每个独立的模块都可以拥有自己的版本控制。
connect 的补丁
Connect 对 node 的原型进行了全局的改动。
这被认为是不正确的,所以在 Connect 3 中已被移除。
其中一些补丁是:
res.on('header')
res.charset
-
res.headerSent
– use node’sres.headersSent
instead
你不应该在任何 Connect 或 Express 的库中再使用这些。
res.charset
如果你想快速设置默认的字符集(你确实应该这么做),
使用 res.set('content-type')
或者 res.type()
来设置 header 。
当使用 res.setHeader()
时,默认的字符集将不会添加。
改动
app.use
app.use
现在可以接受 :params
.
Shell
app.use('/users/:user_id', function(req, res, next) { // req.params.user_id 可以正确获取 });
app .use ( '/users/:user_id' , function ( req , res , next ) { / / req .params .user_id 可以正确获取 } ) ; |
req.accepted()
使用 req.accepts()
来代替。
req.accepts()
req.acceptsEncodings()
req.acceptsCharsets()
req.acceptsLanguages()
都在内部使用 accepts 。
请参考 accepts
来提交问题或者查看文档。
请注意,这些属性可能已经从数组改为函数。
要把它们作为“数组”使用,只要不向它们传递任何参数即可。
例如, req.acceptsLanguages() // => ['en', 'es', 'fr']
.
res.location()
不再做相对路径的 URL 解析。浏览器自身将处理相对路径的 URL 。
app.route -> app.mountpath
当把一个 express 应用安装到另一个 express 应用中时。
配置改动
-
json spaces
在开发模式下不再默认启用。
req.params
现在它是一个对象而不是数组。如果你以前使用 req.params[##]
的形式,这不会破坏你的应用,它可以在不知道参数名的情况下,使用正则来处理路由。
res.locals
不再是一个函数。现在这是一个普通的JS对象。所以把它当作普通的对象来处理。
res.headerSent
改为 headersSent
来匹配 node.js 的 ServerResponse 对象。你的应用可能并没有使用到这个,因此它不会是一个问题。
req.is
现在在内部使用 type-is 。
请参考 type-is
来提交问题或者查看文档。
新加入
app.route(path)
返回一个新的 Route
的实例。当收到和这个路由的 path
相匹配的请求时,这个路由就会被调用。路由可以有自己的中间件和针对 HTTP 动作的方法来处理请求。
请参阅路由和路由线路文档,以便更好地了解如何在 express 中创建路由。
Router 和 Route 中间件
Router 已经全面改版,现在它是一个功能完善的中间件路由。Router 是在不牺牲参数匹配和中间件的情况下,将你的路由分离到多个文件或者模块的好方法。请参阅 Routes 及 路由文档 。
相关推荐
node.js+express+scoket.io聊天系统 需要安装 express 和 scoket 有上线人数 统计 测试聊天 适合初学 node.js 的人使用
node.js + express + mysql 包含前端博客展示、后台管理、node后端。整套博客系统开箱即用,对elemen-ui二次封装组件非常便利,管理端权限模块,用户登录,验证码,token验证,文章编辑,修改,查看,发布,评论,...
node.js+express+mysql实现增删改查+分页,以及图片上传操作
本源码项目是基于Node.js和Express的MySQL数据库操作设计,包含23个文件,主要使用JavaScript编程语言。该项目展示了如何使用Express框架连接MySQL数据库,并进行基本的CRUD(创建、读取、更新、删除)操作。系统...
node.js中可以访问静态文件,只要对静态文件托管就可以了,这是我写的一个例子,和大家交流学习
Express 是一个简洁而快速的 node.js Web开发框架, 提供一系列强大特性帮助你创建各种Web应用。Express 不对 node.js 已有的特性进行二次抽象,我们只是在它之上扩展了Web应用所需的功能。
NULL 博文链接:https://witcheryne.iteye.com/blog/1165067
Node.js之Express(web登录服务),采用node.js+express+mongodb
mongo-express - 基于Web的MongoDB管理界面,采用Node.js、 Express和Bootstrap3开发
单元测试由Mocha模块提供支持,进行单元测试请在终端中执行以下命令:mocha 测试用例.test.js运行运行博客,请在配置好Node.js与Express框架及其他模块后,执行以下命令:npm start bin/www或者你也可以使用Forver...
AnyweiX Server 一个是基于 Node.js 和 Express.js 搭建的微信公众号文章爬虫
对资源的描述: Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它使得开发者可以使用JavaScript编写服务器端代码。Express是一个灵活的Node.js Web应用框架,提供了一系列强大的功能,用于构建单页应用、多...
Node.js-Express-MongoDB构建simple_blog
Using Node.js alongside Express and Pug - the brand new version of Jade - you can create modern web applications solely using JavaScript. This book teaches you how to structure and build your app ...
基于node.JS(Express) Socket.IO的同屏展示程序
2.2.3 Mac OS X上安装Node.js 16 2.3 编译源代码 17 2.3.1 在POSIX系统中编译 17 2.3.2 在Windows系统中编译 18 2.4 安装Node包管理器 18 2.5 安装多版本管理器 19 2.6 参考资料 21 第3章 Node.js...
03 初识 Node.js _Express
基于微信小程序+node.js+express.js+MySQL的校内订餐系统源码+数据库 介绍 前端小程序基于微信小程序原生,后端基于node.js,express.js,数据库MySql