搭建express服务器
来源:互联网 发布:stc15单片机 编辑:程序博客网 时间:2024/05/17 06:00
安装nodejs
https://nodejs.org/en/download/
0. 安装必要的编译环境
yum -y install gcc make gcc-c++ openssl-devel wget
1. 编译好的文件
简单说就是解压后,在bin文件夹中已经存在node以及npm,如果你进入到对应文件的中执行命令行一点问题都没有,不过不是全局的,所以将这个设置为全局就好了。
cd node-v0.10.28-linux-x64/bin
./node -v
这就妥妥的了,node文件夹具体放在哪,叫什么名字随你怎么定。然后设置全局:
建立软连接:
ln -s /home/kun/mysofltware/node-v0.10.28-linux-x64/bin/node /usr/local/bin/node ln -s /home/kun/mysofltware/node-v0.10.28-linux-x64/bin/npm /usr/local/bin/npm
这里/home/kun/mysofltware/这个路径是你自己放的。
2. 通过源码编译
wget https://nodejs.org/dist/v6.9.5/node-v6.9.5.tar.gztar xvf node-v6.9.5.tar.gz cd node-v0.10.28 ./configure --prefix=/usr/local/node make make install
设置环境
vim /etc/profile
第一次使用vim,用得好别扭。。。vim进入profile后,我们会看到profile文件中的内容,按下键盘i进入编辑模式,然后在文本最后面写下如下内容。
export NODE_HOME=/usr/local/node export PATH=$NODE_HOME/bin:$PATH export NODE_PATH=$NODE_HOME/lib/node_modules:$PATH
输入完后,按Esc退出编辑模式,然后按下:wq,就会退出保存。然后输入以下命令才会生效 。
查看当前安装的Node的版本
node -v v0.10.28
安装express
- 安装
d选项表示一并安装依赖模块。没有-g选项的话会在当前目录(通常是项目目录)建立一个node_modules目录。
npm install express -gdnpm install -gd express-generator
安装成功后,命令行会提示 npm info ok
2. 创建
express
npm install启动npm start
如何上述方法不能运行express?
yum install epel-release
yum install nodejs
yum install npm
使用
将生成好的web项目放在publish下面 然后就可以按照路径访问。
教程
路由
路由是指如何定义应用的端点(URIs)以及如何响应客户端的请求。
路由是由一个 URI、HTTP 请求(GET、POST等)和若干个句柄组成,它的结构如下: app.METHOD(path, [callback…], callback), app 是 express 对象的一个实例, METHOD 是一个 HTTP 请求方法, path 是服务器上的路径, callback 是当路由匹配时要执行的函数。
下面是一个基本的路由示例:
var express = require('express');var app = express();// respond with "hello world" when a GET request is made to the homepageapp.get('/', function(req, res) { res.send('hello world');});
Express 定义了如下和 HTTP 请求对应的路由方法: get, post, put, head, delete, options, trace, copy, lock, mkcol, move, purge, propfind, proppatch, unlock, report, mkactivity, checkout, merge, m-search, notify, subscribe, unsubscribe, patch, search, 和 connect。
app.all() 是一个特殊的路由方法,没有任何 HTTP 方法与其对应,它的作用是对于一个路径上的所有请求加载中间件。
在下面的例子中,来自 “/secret” 的请求,不管使用 GET、POST、PUT、DELETE 或其他任何 http 模块支持的 HTTP 请求,句柄都会得到执行。
app.all('/secret', function (req, res, next) { console.log('Accessing the secret section ...'); next(); // pass control to the next handler});
路由路径
路由路径和请求方法一起定义了请求的端点,它可以是字符串、字符串模式或者正则表达式。
// 匹配根路径的请求app.get('/', function (req, res) { res.send('root');});// 匹配 /about 路径的请求app.get('/about', function (req, res) { res.send('about');});// 匹配 /random.text 路径的请求app.get('/random.text', function (req, res) { res.send('random.text');});
响应方法
下表中响应对象(res)的方法向客户端返回响应,终结请求响应的循环。如果在路由句柄中一个方法也不调用,来自客户端的请求会一直挂起。
res.download() 提示下载文件。res.end() 终结响应处理流程。res.json() 发送一个 JSON 格式的响应。res.jsonp() 发送一个支持 JSONP 的 JSON 格式的响应。res.redirect() 重定向请求。res.render() 渲染视图模板。res.send() 发送各种类型的响应。res.sendFile 以八位字节流的形式发送文件。res.sendStatus() 设置响应状态代码,并将其以字符串形式作为响应体的一部分发送
app.route()
可使用 app.route() 创建路由路径的链式路由句柄
app.route('/book') .get(function(req, res) { res.send('Get a random book'); }) .post(function(req, res) { res.send('Add a book'); }) .put(function(req, res) { res.send('Update the book'); });
express.Router
可使用 express.Router 类创建模块化、可挂载的路由句柄
在 app 目录下创建名为 birds.js 的文件,内容如下:
var express = require(‘express’);
var router = express.Router();
// 该路由使用的中间件router.use(function timeLog(req, res, next) { console.log('Time: ', Date.now()); next();});// 定义网站主页的路由router.get('/', function(req, res) { res.send('Birds home page');});// 定义 about 页面的路由router.get('/about', function(req, res) { res.send('About birds');});module.exports = router;
然后在应用中加载路由模块:
var birds = require('./birds');...app.use('/birds', birds);
应用即可处理发自 /birds 和 /birds/about 的请求,并且调用为该路由指定的 timeLog 中间件。
错误处理
app.use(function(err, req, res, next) { console.error(err.stack); res.status(500).send('Something broke!');});
app.use(function(req, res, next) { res.status(404).send('Sorry cant find that!');})
静态文件
所有文件的路径都是相对于存放目录的,因此,存放静态文件的目录名不会出现在 URL 中。
如果你的静态资源存放在多个目录下面,你可以多次调用 express.static 中间件:
app.use(express.static('public'));app.use(express.static('files'));
访问静态资源文件时,express.static 中间件会根据目录添加的顺序查找所需的文件。
如果你希望所有通过 express.static 访问的文件都存放在一个“虚拟(virtual)”目录(即目录根本不存在)下面,可以通过为静态资源目录指定一个挂载路径的方式来实现,如下所示:
app.use('/static', express.static('public'));
现在,你就爱可以通过带有 “/static” 前缀的地址来访问 public 目录下面的文件了。
- 搭建express服务器
- node+express web服务器搭建
- 使用Express搭建Web服务器
- node 快速搭建express 服务器
- 使用Express搭建HTTPs加密服务器
- nodejs express服务器搭建和使用教程
- nodeJS express框架搭建web服务器
- Nodejs搭建服务器express框架理解
- Node.js入门,如何搭建服务器,及Express环境搭建
- 从零开始搭建Node.js, Express, Ejs, Mongodb服务器
- 从零开始搭建Node.js, Express, Ejs, Mongodb服务器
- 从零开始搭建Node.js, Express, Ejs, Mongodb服务器
- 建立node.js服务器(使用express搭建Web环境)
- Window环境下Express框架+MonDodb数据库搭建服务器后台
- [译] Node.js, Express.js 搭建 HTTP/2 服务器
- 基于express中间件 搭建小型服务器(随笔)
- 使用express+mockjs搭建服务器和模拟数据
- 搭建express开发环境
- java 基础知识(泛型用法总结)
- spring4以上版本与dubbo兼容问题
- 刚好遇见你
- java基础.集合.Set.初识
- 蓝桥杯 ALGO-61 算法训练 奇偶判断
- 搭建express服务器
- IntelliJ Idea 常用快捷键列表
- 让c++ 函数返回一个数组
- SpringMVC源码分析--容器初始化(四)FrameworkServlet
- JS:原型、原型链、继承
- C++中如何使函数返回数组
- 蓝桥杯 ALGO-62 算法训练 平方计算
- REDIS学习
- SpringMVC源码分析--容器初始化(五)DispatcherServlet