如果说用一句话来概括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. css动画-模拟正余弦曲线

    今天就写一个css3抛物线的动画吧= = 从左到右的抛物线动画,我们就暂且把动作分为匀速向右运动和变速的上下运动. 水平匀速运动我们可以利用 translateX(x):定义 2D 转换,沿着 X 轴 ...

  2. JAVA中的多态概念

    多态性是指同一操作作用于某一类对象,可以有不同的解释,产生不同的执行结果. 多态存在的三个必要条件 需要存在继承和实现关系 同样的方法调用而执行不同操作,运行不同代码. 在运行时父类或者接口的引用变量 ...

  3. iOS核心动画高级技巧之核心动画(三)

    iOS核心动画高级技巧之CALayer(一) iOS核心动画高级技巧之图层变换和专用图层(二)iOS核心动画高级技巧之核心动画(三)iOS核心动画高级技巧之性能(四)iOS核心动画高级技巧之动画总结( ...

  4. 微软高性能缓存AppFabric (一) 安装

    博客原文链接:http://www.cnblogs.com/Qbit/p/6088703.html AppFabric 缓存功能的前身是VeloCity ,它是基于windows平台的一个高速内存缓存 ...

  5. java Vamei快速教程01

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Java是完全面向对象的语言.Java通过虚拟机的运行机制,实现“跨平台”的理念. ...

  6. JavaScript and Ruby in ABAP

    Netweaver里有个mini JavaScript engine CL_JAVA_SCRIPT, 对于Js code的编译和执行都是用system call完成. 只能当玩具用:report SJ ...

  7. 从.net到java,从基础架构到解决方案。

    这一年,职业生涯中的最大变化,是从.net到java的直接跨越,是从平台架构到解决方案的不断完善. 砥砺前行 初出茅庐,天下无敌.再学三年,寸步难行.很多时候不是别人太强,真的是自己太弱,却不自知. ...

  8. JS中的toString()和valueOf()方法

    1.toString()方法:主要用于Array.Boolean.Date.Error.Function.Number等对象转化为字符串形式.日期类的toString()方法返回一个可读的日期和字符串 ...

  9. 剑指Offer的学习笔记(C#篇)-- 和为S的连续正数序列

    题目描述 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数).没多久,他 ...

  10. nginx反向代理与正向代理的区别

    http://blog.csdn.net/m13666368773/article/details/8060481