nodejs 入门-Express

Node 原生 http 在某些方面不足以应对开发需求,所以就需要使用框架来加快开发效率

Express 是轻快简洁的 Web开发框架,其实就是封装的 http。使用教程可查看 官网教程,使用前先下载这个第三方包

npm install express --save

创建入口文件 app.js

var express = require(‘express‘) //引包
var app = express() //创建服务器应用程序,相当于原来的http.createServer()

//当服务器收到get请求 / 时侯,执行回调处理函数
app.get(‘/‘,function (req,res) {
    res.send(‘Hello Express‘) //原来Node的write()、end()等api依旧可以使用
})

app.listen(3000,function () {
    console.log(‘app is running at port 3000.‘)
})

命令行执行 app.js,然后在浏览器发起请求,得到响应结果 Hello Express。这便是最简单的 express应用



基本路由

指一种映射关系,或者说是导航,如 get 请求 / 时执行对应函数,post请求 /login 时执行其对应函数,每个请求都有对应的处理函数

请求方式、请求路径和请求处理函数,就组成了一个路由

app.get(‘/‘,function (req,res) { //get
    res.send(‘Hello Express‘)
})
app.post(‘/login‘,function (req,res) { //post
    res.send(‘Nice to meet you‘)
})


静态资源

公开指定目录供外界访问

//当请求路径为/public开头时,可访问public目录中的资源
app.use(‘/public‘,express.static(‘./public/‘))

/*若省略第一个参数,则访问时直接写资源名,如public下有a.jpg,则http://127.0.0.1:3000/a.jpg可以访问,  http://127.0.0.1:3000/public/a.jpg则访问不到*/
app.use(express.static(‘./public/‘))

//第一个参数不一定代表真实目录名,也可以起别名,只有/abc开头的请求才能访问public目录下的资源
app.use(‘/abc‘,express.static(‘./public/‘))


Express中使用art-template

要先安装 art-templateexpress-art-template

express-art-template 专门将 art_template 整合到 Express,因为 express-art-template 依赖了 art-template,所以两者都要npm下载

npm install --save art-template express-art-template  //一次性安装多个包

配置

//配置使用art-template模板引擎,第一个参数表示使用art-template来渲染.html结尾的文件
app.engine(‘art‘,require(‘express-art-template‘))

app.get(‘/‘,function (req,res) {
    //Express为response对象提供了render()方法,默认不可用,配置了模板引擎才能使用
    //res.render(‘html模版名‘,{模板数据}),会自动读取文件,渲染数据.第二个参数可省略,也就是不渲染直接输出
    res.render(‘index.html‘,{
        title:‘用户信息‘,
        content:‘这是内容‘
    })
})

Express有个约定,希望开发人员把所有的视图文件都放到 views 目录中 

render() 方法第一个参数不能写路径,默认会从项目中的views目录查找该模板文件

index.html模板和项目结构

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>{{ title }}</title>
</head>
<body>
    <p>{{ content }}</p>
</body>
</html>

修改默认的 views 视图渲染存储目录

//第一个参数不是路径,是指默认的views目录,第二个参数是路径
app.set(‘views‘, ‘自定义目录‘)


中间件

get 请求是通过 url 拼接字符串的方式将参数传给后台

而无论是原生 http 还是 express 的 http,都已将查询字符串作为属性封装到了 request 中,所以直接 request.query 即可获取浏览器发来的值

post 请求将数据放在请求体中,而 Express 没有提供相应 API 来获取 post 请求体,但可利用第三方插件

Express 的中间件 body-parser 就是专门解析 post 请求的,所谓中间件应该就是为了增加功能的中间插件

先下载 body-parser 中间件,注意不要少个 r

npm install --save body-parser 

再按教程配置

var express = require(‘express‘)
var bodyParser = require(‘body-parse‘) //引包
var app = express()

//配置body-parser,只要加了这个配置,在在req请求对象上会多一个body属性
app.use(bodyParser.urlencoded({ extended:false }))
app.use(bodyParser.json())

app.post(‘/post‘,function (req,res) {
    console.log(req.body) //输出结果为对象
})

Express 的重定向,无论是 send() 还是 redirect() , Express 都会帮我们 end() 来结束响应

// res.statusCode = 302// res.setHeader(‘Location‘,‘/‘)
// res.end()
res.redirect(‘/‘) //以上三步是Node的写法,依旧可用,但现在封装好了,可直接一句代码实现重定向


nodemon

使用 window 的命令行工具,修改代码后要手动重启服务器,使用 nodemon 可自动重启,它是基于Node.js开发的的一个第三方命令行工具

npm install --global nodemon //要全局安装,可在任意目录执行此命令,用--global安装的包可在任意目录执行

安装后通过 nodemon -v 命令查看版本号检查是否安装成功,之后执行命令时把 node 换成 nodemon 即可

只要是通过 nodemon 启动的服务,它会检查文件的变动然后自动重启服务器,每次修改代码保存(Ctrl + s)后会自动重启服务器

原文地址:https://www.cnblogs.com/Grani/p/9575834.html

时间: 2024-10-11 06:07:18

nodejs 入门-Express的相关文章

nodejs入门——搭建一个聊天室应用

个人博客 http://mvc.coding.io/ 1入门教程推荐 node入门 很早之前看的就是这个,比较浅显易懂,看一遍就明白nodejs到底是怎么一回事儿了 2开源项目 昨天在coding上看到了一个nodejs聊天室,fork了一份 nodejs聊天室 3环境搭建 nodejs官网,下载最新版本(本人电脑win7 64位),安装过程下一步下一步就行,安装会自动配置环境变量, 建议安装目录自己选择一下,别默认安装在C:\Program Files\ 目录下(目录有空格 会出现一些问题)

Nodejs 入门秘籍,搭一个最简单的web服务器。(菜鸟的你也能秒懂)

心血来潮,总结了一个Nodejs入门秘籍.看了你就想学NodeJs了. 一.简单介绍nodejs 初学nodejs  ,直接上简单实例.先简单说明一下:nodejs ,nodejs相当于服务器端的 可以轻易搭建一个服务器端. nodejs是用C++开发的一种运行于服务器端的语言,可以写网站后台程序,可以做服务端应用开发,语法和JAVASCRIPT一样,会JS,就是会NodeJS,区别于,普通JS是脚本运行客户端,而NODEJS中的JS是运行于服务器端,NODEJS的作用相当PHP,ASP等语言.

nodejs创建Express项目

Express项目 环境准备:nodejs.express npm install -g express/ npm install -g express-generator 使用WebStorm创建Express项目 创建express-generator版本选择4.14.1及以下版本创建,选择4.15创建会失败. 使用命令创建Express项目 参考: nodeJS学习(4)--- webstorm/...开发 NodeJS 项目 nodeJS入门--新建一个项目及代码详解 NodeJs--

NodeJS入门

NodeJS入门 来源于: http://www.nodebeginner.org/index-zh-cn.html 作者: Manuel Kiessling 翻译: goddyzhao &GrayZhang &ondayChen 关于 本书致力于教会你如何用Node.js来开发应用,过程中会传授你所有所需的“高级”JavaScript知识.本书绝不是一本“Hello World”的教程. 状态 你正在阅读的已经是本书的最终版.因此,只有当进行错误更正以及针对新版本Node.js的改动进行

NodeJS入门(四)—— path对象

很快Node就会迎来4.0的时代,届时将并入现有的iojs,所以先前写过的iojs入门系列直接更名为NodeJS入门. 本篇开始将逐个介绍Node的各主要模块,依循API文档走一遍,但会给出比API文档更详尽的示例. 所有的示例都可以在我的Github上下载到(暂时传不了,这段时间VPN统统失效,你懂的...). API系列的开篇打算以 path 对象开始,因为之前在写一些gulp插件,发现path的使用频率实在太高了,掌握之有助于我们处理好一些文件或文件夹的路径. path.normalize

NodeJS with Express 4.x

Express 4.x 静态资源目录设置: //静态文件目录 app.use('/public', express.static(__dirname+'/public')); app.use('/data', express.static(__dirname+'/data')); //可以让 http://www.domain.com/image/aaa.jpg访问到服务器public目录下的aaa.jpg var express = require("express"), app =

NodeJS入门--环境搭建 IntelliJ IDEA

NodeJS入门–环境搭建 IntelliJ IDEA 本人也刚开始学习NodeJS,所以以此做个笔记,欢迎大家提出意见. 1.首先 下载安装NodeJS,下载安装IntelliJ IDEA 2.接下来我们详细介绍在IDEA中配置NodeJS 默认安装好了IDEA,在IDEA的file -> setting ->Plugins,右边默认是没有这个组件的需要你手动点击Browe repositories..,在插件列表中搜索nodejs,将看到NodeJS插件,点击下载,重启,(其实它会关联到你

01.Nodejs入门之Helloworld

说明:本文章可供有一定js基础的朋友参考nodejs入门,本文未讲解nodejs的安装,如有需要的同学可以加QQ3382260752找我,进行交流学习. 1.新建文件夹helloworld demo,然后新建文件server.js,将以下代码拷贝至server.js var http = require('http'); http.createServer(function (request, response) { //request 可以简写req,  response可以简写为res //

NodeJS框架express的途径映射(路由)功能及控制

NodeJS框架express的路径映射(路由)功能及控制 我们知道Express是一个基于NodeJS的非常优秀的服务端开发框架,本篇CSSer将提供express框架的route和route control章节,route实现了客户端请求的URL的路径映射功能,暂且译为路由或URL映射吧.如果你还是不太理解,相信看完本篇文章将会有些收获的. 路由(URL映射) Express利用HTTP动作提供了有意义并富有表现力的URL映射API,例如我们可能想让用户帐号的URL看起来像"/user/12