nodejs express开发框架 全局安装 目录介绍

Express应用搭建与配置
本文介绍如何使用express-generator快速创建Express应用,包括项目初始化、依赖安装及app.js配置详解。通过设置视图引擎、中间件及路由,实现基本的前端展示与错误处理。

通过应用生成器工具 express-generator 可以快速创建一个应用的骨架。

新建项目文件夹,cd~项目文件 全局安装 express-generator

$ npm install -g express-generator
$ express myapp

cd~ myapp 执行 yarn install / npm install 安装依赖插件

在这里插入图片描述

重点介绍 app.js

var createError = require('http-errors');  // 处理没有匹配的路由
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser'); // 解析cookie
var logger = require('morgan'); // 写日志

// 引入两个路由
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');

var app = express();  // 初始化app

// view engine setup  // 前端模版注册
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

app.use(logger('dev'));
app.use(express.json());  // 处理post 请求
app.use(express.urlencoded({ extended: false })); // post 兼容其他的格式
app.use(cookieParser()); //解析cookie
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', indexRouter);
app.use('/users', usersRouter);  //定义父路由

// catch 404 and forward to error handler
app.use(function(req, res, next) {
  next(createError(404));
});

// error handler  程序会抛错误 区分环境
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'dev' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

module.exports = app;

package.js

通过安装 cross-env、nodemon 自定义dev命令

{
  "name": "expresstest",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "node ./bin/www",
    "dev": "cross-env NODE_ENV=dev nodemon ./bin/www.js"
  },
  "dependencies": {
    "cookie-parser": "~1.4.4",
    "debug": "~2.6.9",
    "express": "~4.16.1",
    "http-errors": "~1.6.3",
    "jade": "~1.11.0",
    "morgan": "~1.9.1"
  },
  "devDependencies": {
    "cross-env": "^6.0.3",
    "nodemon": "^2.0.1"
  }
}

### 关于 Node.js 和 Express 框架的使用教程 #### 1. 安装 Node.js 和 Express 为了开始学习如何使用 Express 框架开发 Web 应用程序,首先需要确保已安装 Node.js。可以通过访问官方站点下载并安装最新版本的 Node.js[^1]。 一旦完成 Node.js 的安装,就可以通过 npm(Node Package Manager)来全局或者局部安装 Express 框架。以下是安装命令: ```bash npm install express --save ``` 此命令会在项目依赖项中保存 Express 并将其添加到 `package.json` 文件中[^2]。 #### 2. 创建基本的应用结构 创建一个新的文件夹作为项目的根目录,并初始化新的 Node.js 项目: ```bash mkdir myapp cd myapp npm init -y ``` 接着,在项目中引入 Express 模块并设置基础路由逻辑。下面是一个简单的服务器启动脚本示例: ```javascript const express = require('express'); const app = express(); const port = 3000; // 基础路由定义 app.get('/', (req, res) => { res.send('Hello World!'); }); // 启动服务监听端口 app.listen(port, () => { console.log(`Example app listening at http://localhost:${port}`); }); ``` 这段代码展示了如何利用 Express 来建立一个最简化的 HTTP Server。 #### 3. 配置中间件 Express 支持多种类型的中间件用于增强请求/响应周期的功能。常见的有解析 JSON 数据、上传文件以及管理 Cookie 等操作。例如,可以集成以下常用插件: - **body-parser**: 处理 POST 请求体中的数据。 ```bash npm install body-parser --save ``` 在应用中配置如下: ```javascript const bodyParser = require('body-parser'); // 解析 application/json 类型的数据 app.use(bodyParser.json()); ``` - **multer**: 专门用来处理 multipart/form-data 表单提交的内容。 ```bash npm install multer --save ``` 示例代码片段: ```javascript const multer = require('multer'); const upload = multer({ dest: 'uploads/' }); app.post('/upload', upload.single('file'), (req, res) => { res.send('File uploaded successfully.'); }); ``` - **cookie-parser**: 方便读取客户端发送过来的 Cookies。 ```bash npm install cookie-parser --save ``` 使用方法: ```javascript const cookieParser = require('cookie-parser'); app.use(cookieParser()); app.get('/read-cookie', (req, res) => { let cookies = req.cookies; res.send(cookies); }); ``` 以上这些工具可以帮助开发者更高效地管理和扩展应用程序功能[^3]。 #### 4. 构建 RESTful API 接口 除了传统的 HTML 页面渲染外,Express 还非常适合构建现代化的 RESTful APIs。比如设计一个获取用户列表的服务接口: ```javascript let users = [{ id: 1, name: "Alice" }, { id: 2, name: "Bob" }]; // 获取所有用户的 GET 路由 app.get('/api/users', (req, res) => { res.status(200).json(users); }); // 添加新用户的 POST 路由 app.post('/api/user', (req, res) => { let newUser = req.body; // 假设前端传入了正确的 user 对象 users.push(newUser); res.status(201).send("User created"); }); ``` 上述例子演示了一个简易版 CRUD 功能实现方式[^2]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值