如果说用一句话来概括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 做了什么
  1. 使用require('xxx') 引入了express 模块, 这种方式是 Node 中少数同步的操作,它一开始会去Node 的原始 node_modules 目录下寻找express 模块 然后引入,把值赋给express,然后实例化为app.

  2. app.set('port',xxx) 能够设置我们的域名端口,这里process.env.PORT是指
    环境变量要是设置了PORT,那么就用环境变量的PORT,环境变量没有我们就用3000.

其他路由信息可以自行百度或者暂时只需要了解 app.get是 用来处理路由请求的.
详见

小结

本篇只是简单的介绍了express的简单开发,由于篇幅欲求极简,其他讯息烦请自行了解。


作者:颜卿今天Coding了吗
链接:https://www.jianshu.com/p/b4701a6efc50
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

极简Node教程-七天从小白变大神(一:你需要Express)的更多相关文章

  1. 极简Node教程-七天从小白变大神(二:中间件是核心)

    当我们只引入express时,前述的那些功能都是没有启用的.那么,如何将这些功能添加进来呢?express通过其中间件机制实现了这些功能的管理.每一个中间件对应一个功能,而中间件可以是第三方库,也可以 ...

  2. mui初级入门教程(四)— 再谈webview,从小白变“大神”!

    文章来源:小青年原创发布时间:2016-06-05关键词:mui,html5+,webview转载需标注本文原始地址: http://zhaomenghuan.github.io/#!/blog/20 ...

  3. 【同行说技术】Python程序员小白变大神必读资料汇总( 三)

    在文章<Python开发.调试.爬虫类工具大全>里面向大家总结了各种实用工具和爬虫技术,今天小编收集了5篇带有实例干货的资料,赶紧来看看吧!另外,喜欢写博客的博主可以申请加工程师博主交流群 ...

  4. 极简 Node.js 入门 - Node.js 是什么、性能有优势?

    极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...

  5. 极简 Node.js 入门 - 1.2 模块系统

    极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...

  6. 极简 Node.js 入门 - 1.3 调试

    极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...

  7. 极简 Node.js 入门 - 1.4 NPM & package.json

    极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...

  8. 极简 Node.js 入门 - 2.1 Path

    极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...

  9. 极简 Node.js 入门 - 2.2 事件

    极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...

随机推荐

  1. chart.js 使用方法 特别说明不是中文的

    以上是一个饼图的案例,其他统计类型查看文档 http://www.chartjs.org/docs/latest/charts/doughnut.html 注意看域名 chartjs.org  不是 ...

  2. [转]linux远程登入不需要密码

    如何通过一台linux ssh远程其他linux服务器时,不要输入密码,可以自动登入.提高远程效率,不用记忆各台服务器的密码. 工具/原料   ssh,ssh-keygen,scp 方法/步骤     ...

  3. 《Python高效开发实战》实战演练——基本视图3

    在完成Django项目和应用的建立后,即可以开始编写网站应用代码,这里通过为注册页面显示一个欢迎标题,来演示Django的路由映射功能. 1)首先在djangosite/app/views.py中建立 ...

  4. FPGA工具篇——编辑器Notepad++

    body { font-family: 微软雅黑,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLi ...

  5. happy2018暑期集训课后习题001

    根据需求补全下面的代码: 需求: 每行输入三个整数a.b.c,根据a的值不同对b和c进行不同的操作: a为0时,计算b+c a为1时,计算b-c a为2时,计算b*c a为3时,计算b/c 并输出操作 ...

  6. IOS 响应者链条 and UIGestureRecognizer 手势识别器)

    一次完整的触摸事件的传递响应的过程 UIAppliction --> UIWiondw -->递归找到最适合处理事件的控件 控件调用touches方法-->判断是否实现touches ...

  7. 【BZOJ1029】[JSOI2007] 建筑抢修(堆优化贪心)

    点此看题面 大致题意: 有N个受到严重损伤的建筑,对于每个建筑,修好它需要\(T1\)秒,且必须在\(T2\)秒之前修完(\(T1\)与\(T2\)不是固定值),问你最多能修好几个建筑. 题解 一看到 ...

  8. hive对有null值的列进行avg,sum,count等操作时会不会过滤null值

    在hive中,我们经常会遇到对某列进行count.sum.avg等操作计算记录数.求和.求平均值等,但这列经常会出现有null值的情况,那这些操作会不会过滤掉null能呢? 下面我们简单测试下: wi ...

  9. systemd 中的requires, wants, before, after

    man systemd.unit    man systemd.service ###依赖关系和前后顺序* 依赖关系:Requires和Wants * 前后顺序:After,Before 依赖关系,前 ...

  10. react的Redux基础

    redux的中文文档:http://www.redux.org.cn/ redux的英文官网:https://redux.js.org/ redux相当于vuex Redux 是 JavaScript ...