极简Node教程-七天从小白变大神(一:你需要Express)
如果说用一句话来概括Node那就是:它开启了JavaScript服务器端语言。
Node系列的文章并不会从一开始长篇概论的讲Node的历史,安装,以及其他很琐碎的事情。只会专门介绍关于Node或者准确来讲是关于Node的敏捷开发。
首先我们需要一个脚手架
快速了解Express
1.Express 是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架,它提供一系列强大的特性,帮助你创建各种 Web 和移动设备应用。
2.API
丰富的 HTTP 快捷方法和任意排列组合的 Connect 中间件,让你创建健壮、友好的 API 变得既快速又简单。
3.性能
Express 不对 Node.js 已有的特性进行二次抽象,我们只是在它之上扩展了 Web 应用所需的基本功能。
如果说你对以上还是云里雾里的话,我们接下来马上利用Express开发一个网站
Express五分钟开发一个网站
首先确保你已经安装好Node.exe 及其附带的npm , 这是我们开发的关键,然后打开任意的命令行不管是系统自带的命令行或者node附带的亦或是Git cmd.
键入:
$ npm install express-generator -g // npm install 是安装任何第三方包的命令, express-generator -g 指在全局范围下安装名为 express-generator 的第三方包。
等待系统联网安装express,下载完成后,可以选择你喜欢的名字作为应用目录:
express myapp //指在当前命令行目录下创建一个名为myapp的文件夹用来做应用目录
等待系统生成应用骨架,然后进入myapp目录下:
cd myapp //到达我们的工作目录
然后 下载所有express这个应用所需的所有依赖项 (可以理解为前端项目自动下载jquery,bootstrap 之类的第三方库或者框架,当然事实上并不是这个意思):
npm install
下载完毕后,就可以启动我们的express应用了,运行:
npm start // 或者 node app.js 或者其实还有很多的奇淫巧计
现在打开你喜欢的Chrome浏览器或者Edge 浏览器 网址输入奇怪的 域名:
http://localhost:3000/
等待片刻,标志性的Express 就出来了,现在不管你的心情是欣喜或者郁闷抑或习以为常,这本质上就是一个网站了,为防你不信,还可以输入另一个奇怪的域名:
http://localhost:3000/users //
我们刚才仅仅只是简单的启动了express罢了,现在开始真正的开发了。
在目录下新建一个名为server.js 的文件,作为项目的入口文件:
/* 以下代码等下会有详细的解释 */
var express = require('express'); // 用来引入express模块
var app = express(); // express 实例对象
app.set('port',process.env.PORT || 3000);
// 设置端口为3000
app.get('/',function (req,res) { // 设置首页的路由 用 '/' 表示
res.send('Ritsu Yan ')
})
app.get('/about',function (req,res) { //设置about页面的路由 用 '/about' 表示
res.send('the node course')
})
app.use(function (req,res,next) { // 设置404页面
res.status(404);
res.send('404 - Not Found')
})
app.listen(app.get('port'),function () { // 监听端口如果有用户进入页面发送请求我们输出以下语句
console.log('express started on port 3000')
})
现在 关闭当前命令行新建一个 命令行然后重新输入
node server.js
然后浏览器重载首页即
http://localhost:3000/
或者
http://localhost:3000/about
都能得到满意的回应
现在我们看看server.js 做了什么
使用require('xxx') 引入了express 模块, 这种方式是 Node 中少数同步的操作,它一开始会去Node 的原始 node_modules 目录下寻找express 模块 然后引入,把值赋给express,然后实例化为app.
app.set('port',xxx) 能够设置我们的域名端口,这里process.env.PORT是指
环境变量要是设置了PORT,那么就用环境变量的PORT,环境变量没有我们就用3000.
其他路由信息可以自行百度或者暂时只需要了解 app.get是 用来处理路由请求的.
详见
小结
本篇只是简单的介绍了express的简单开发,由于篇幅欲求极简,其他讯息烦请自行了解。
作者:颜卿今天Coding了吗
链接:https://www.jianshu.com/p/b4701a6efc50
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
极简Node教程-七天从小白变大神(一:你需要Express)的更多相关文章
- 极简Node教程-七天从小白变大神(二:中间件是核心)
当我们只引入express时,前述的那些功能都是没有启用的.那么,如何将这些功能添加进来呢?express通过其中间件机制实现了这些功能的管理.每一个中间件对应一个功能,而中间件可以是第三方库,也可以 ...
- mui初级入门教程(四)— 再谈webview,从小白变“大神”!
文章来源:小青年原创发布时间:2016-06-05关键词:mui,html5+,webview转载需标注本文原始地址: http://zhaomenghuan.github.io/#!/blog/20 ...
- 【同行说技术】Python程序员小白变大神必读资料汇总( 三)
在文章<Python开发.调试.爬虫类工具大全>里面向大家总结了各种实用工具和爬虫技术,今天小编收集了5篇带有实例干货的资料,赶紧来看看吧!另外,喜欢写博客的博主可以申请加工程师博主交流群 ...
- 极简 Node.js 入门 - Node.js 是什么、性能有优势?
极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...
- 极简 Node.js 入门 - 1.2 模块系统
极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...
- 极简 Node.js 入门 - 1.3 调试
极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...
- 极简 Node.js 入门 - 1.4 NPM & package.json
极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...
- 极简 Node.js 入门 - 2.1 Path
极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...
- 极简 Node.js 入门 - 2.2 事件
极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...
随机推荐
- ubuntu安装robo3t
直接在官网下载 解压文件(使用命令 tar -zxvf robo3t-1.2.1-linux-x86_64-3e50a65.tar.gz) 打开解压后的文件,进入bin文件,直接在终端运行 ./rob ...
- w3cschool中jQuery测试结果总结
1.jQuery 是 W3C 标准. 2.$("div#intro .head") 选择器选取:class="intro" 的任何 div 元素中的首个 id= ...
- python3.7 安装 xlrd 模块---Mac
要用Excel将数据和代码分离,需要import xlrd, 使用前需要先安装xlrd模块. 说明:通过在google中搜索“xlrd Mac”,下载xlrd.py模块(下载地址:http://mac ...
- sql server 搭建发布订阅后,改端口不正常工作的问题
sql 的发布订阅,想必大家都了解,但一般都是在默认的1433的情况下搭建的,那么1433换成别的端口,发布还能正常工作吗? 在一次客户的真实场景上我就遇到了. 好了,今天不想写太多,简化下, 测试环 ...
- PHP:isset()-检测变量是否被设置
isset()-检测变量是否被设置 bool isset(mixed $var [, mixed $...]),检查变量是否被设置,并且不是NULL.var,要检测的变量,...其他变量,允许有多个变 ...
- IOS 监听slider滑动
// 监听slider滑动 - (IBAction)valueChnage:(UISlider *)sender; @property (weak, nonatomic) IBOutlet NJVie ...
- 第九章 利用DOM脚本检索,替换,设置,追加样式信息
我们浏览器里看到的网页是由以下三层信息构成的一个共同体: -结构层,由HTML或XHTML之类的标记语言负责去搭建文档的结构. -表示层,由CSS负责设置文档的呈现效果. -行为层,由JavaScri ...
- vue列表过渡效果
<transition-group></transition-group> ① 列表 <transition-group> </transition-grou ...
- display :inline-block 处理点小障碍
使用inline-block之前先处理点小障碍:inline-block元素会有4px左右的空隙,这个是因为我们写代码时候的换行符所致. 解决办法很简单:在inline-block的父元素中设置样式f ...
- hashlib模块常用功能
什么是hash hash是一种算法,该算法接受传入的内容,经过运算得到一串hash值 如果把hash算法比喻为一座工厂 那传给hash算法的内容就是原材料 生成的hash值就是生产出的产品 2.为何要 ...