安装

安装 Express

通过 Express 应用程序生成器

此生成器可帮助你快速创建应用程序框架。

首先,你需要使用 npm 或者 yarn 全局安装生成器。

$ npm install express-generator -g

$ yarn global add express-generator

该生成器的用法为 express [options] [dir] ,其中,options 为生成时的参数,dir 为您的应用目录(建议为空目录)。

生成器参数列表
参数 可选值 默认值 作用
--no-view 不适用 false 不集成模板引擎(适用于 Api 开发)
-v, --view ejs, hbs, hjs, jade, pug, twig, vash jade 集成相应的模板引擎
-c, --css less, stylus, compass, sass 原生 Css 集成相应的 Css 编译程序
--git 不适用 false 生成 .gitignore 文件
-f, --force 不适用 false 强制覆盖已有的文件

myapp 目录生成一个集成了 Pug 模板引擎的框架。

$ express --view=pug myapp

然后安装依赖项。

$ cd myapp
$ npm install // 使用 Npm
$ yarn // 使用 Yarn

再运行此应用程序。

$ DEBUG=myapp:* npm start // 适用于 MacOS 或 Linux
$ set DEBUG=myapp:* & npm start // 适用于 Windows

然后在浏览器中访问 http://localhost:3000 即可。

您的目录结构应当如下:

.
├── app.js
├── bin
│   └── www
├── package.json
├── public
│   ├── images
│   ├── javascripts
│   └── stylesheets
│       └── style.css
├── routes
│   ├── index.js
│   └── users.js
└── views
    ├── error.pug
    ├── index.pug
    └── layout.pug

7 directories, 9 files

自行构建

您需要手动创建一个 Npm 项目。

$ mkdir myapp
$ cd myapp
$ npm init

然后安装 Express

$ npm install express --save // 使用 Npm
$ yarn add express // 使用 Yarn

接着在 myapp 目录中创建名为 index.js 的文件,然后添加以下代码。(index.js 可随意更改为您的应用入口文件)

var express = require('express');
var app = express();

app.get('/', function (req, res) {
    res.send('Hello World!');
});

app.listen(3000, function () {
    console.log('Application Started');
});

应用程序会启动服务器,并在端口 3000 上进行监听。此应用程序以“Hello World!”响应针对根 URL (/) 或路由的请求。对于其他所有路径,它将以 404 进行响应。

使用以下命令运行。

$ node index.js // 或改为您的应用程序入口文件

然后,在浏览器中输入 http://localhost:3000 以查看输出。

附言:使用 Dev 模式启动

如果你试过了启动,那么你也许已经察觉到了一个问题,那就是,为什么我改了代码,刷新页面却没反应呢?
第一个原因:你忘记保存了。
第二个原因:Node.js 的编译机制
Node.js 运行时会把当前的内容编译到一个文件里,如果需要更新代码,则需要重新启动。
而 Node.js 也提供了 node-dev 命令行,使用此命令则会实时刷新更改的代码。

$ yarn global add node-dev

然后在 package.json 文件中添加,

...
"scripts": {
    "start": "node ./bin/www",
    "dev": "node-dev ./bin/www"
},
...

然后运行 npm run dev 即可。

本文章首发在 LearnKu.com 网站上。
上一篇 下一篇
sunxyw
讨论数量: 0
发起讨论 只看当前版本


暂无话题~