Node.js学习笔记(6)——使用Express创建一个工程
前提是搭建好了环境,node,npm,express;(推荐全局安装)
开始用express创建一个基础工程:
express –t ejs microblog
进入文件夹之后
npm-install(自动安装好要用的依赖)
这个时候,用浏览器访问localhost:3000,就可以出来一个欢迎界面了,这里简单说下原理:当你在浏览器输入这个地址砸下回车的瞬间,node搭建的一个网站后台程序开始工作,在app.js这个文件里面,有app.get(‘/’, routes.index);这一句话的作用就是当你访问‘/’的时候,把你的请求‘/‘ 路由到route文件夹下的index函数。我们再看index函数:res.render('index', { title: 'Express' });功能是调用模板引擎,并传入一个参数Express。模板文件是view文件夹下面的index.jade,里面的一句话:h1= title p Welcome to #{title}实现把传过来的参数Express包装进tittle里面,最终实现了最终结果的显示。
这是一个完整的请求、路由、响应的过程。
我们发现,在app.js文件里面和app.get(‘/’, route.index);相似的另外一条路由规则:app.get('/users', user.list);和上一条路由规则一样,我们可以知道,这条规则的意思就是说:我们访问localhost:3000/users的时候,浏览器会通过后台程序返回routes文件夹下面的user.list文件,然后返回给浏览器结果。果不其然,浏览器果然通过这个文件里面的:res.send("respond with a resource");返回了respond with a resource。
这样我们就完成了两条完整的请求和响应流程。
于是,我们就想创建一条真正属于自己的流程,从请求道响应到最后展示在浏览器的页面上,都是自己的东西。
好吧,按照书里面的,我们开始创建一个只是显示时间的页面,我们是这样设想的:当我们在浏览器里面输入localhost:3000/hello并敲击回车的时候,浏览器返回给我们的是当前的时间。
于是开始动手。
首先,我们子啊app.js里面新增
app.get(‘/hello’,routes.hello);
然后再routes文件夹下面的index.js文件下新增hello函数:
exports.hello=function(req,res){ res.send(‘the time is’ +new Date().toString()); };
最后完成测试。
返回:
the time is Wed Sep 10 2014 14:05:34 GMT+0800 (中国标准时间)
Node.js学习笔记(6)——使用Express创建一个工程的更多相关文章
- node.js学习笔记(一)——创建第一个应用
巧妇难为无米之炊.要学习node.js,当然必须先有node.js环境(可以去官网 http://nodejs.cn/ 下载安装),如果还是不懂怎么配置开发环境,度娘会告诉你一切. 安装完成环境之后, ...
- 系列文章--Node.js学习笔记系列
Node.js学习笔记系列总索引 Nodejs学习笔记(一)--- 简介及安装Node.js开发环境 Nodejs学习笔记(二)--- 事件模块 Nodejs学习笔记(三)--- 模块 Nodejs学 ...
- Node.js学习笔记(2):基本模块
Node.js学习笔记(2):基本模块 模块 引入模块 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式.在No ...
- 一点感悟:《Node.js学习笔记》star数突破1000+
写作背景 笔者前年开始撰写的<Node.js学习笔记> github star 数突破了1000,算是个里程碑吧. 从第一次提交(2016.11.03)到现在,1年半过去了.突然有些感慨, ...
- Node.js学习笔记(3):NPM简明教程
Node.js学习笔记(3):NPM简明教程 NPM常用操作 更新NPM版本 npm install npm -g -g,表示全局安装.我们可以指定更新版本,只需要在后面填上@版本号即可,也可以输入@ ...
- Node.js学习笔记(1):Node.js快速开始
Node.js学习笔记(1):Node.js快速开始 Node.js的安装 下载 官方网址:https://nodejs.org/en/ 说明: 在Windows上安装时务必选择全部组件,包括勾选Ad ...
- Node.js学习笔记(4):Yarn简明教程
Node.js学习笔记(4):Yarn简明教程. 引入Yarn NPM是常用的包管理工具,现在我们引入是新一代的包管理工具Yarn.其具有快速.安全.可靠的特点. 安装方式 使用npm工具安装yarn ...
- Node.js学习笔记(六) --- Nodejs 的非阻塞 I/O、 异步、 事件驱动
1. Nodejs 的单线程 非阻塞 I/O 事件驱动在 Java. PHP 或者.net 等服务器端语言中,会为每一个客户端连接创建一个新的线程.而每个线程需要耗费大约 2MB 内存.也就是说,理论 ...
- Linux内核分析第六周学习笔记——分析Linux内核创建一个新进程的过程
Linux内核分析第六周学习笔记--分析Linux内核创建一个新进程的过程 zl + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/U ...
随机推荐
- BZOJ 1975 魔法猪学院(A*+手写堆)
1975: [Sdoi2010]魔法猪学院 Time Limit: 10 Sec Memory Limit: 64 MB Submit: 1941 Solved: 595 [Submit][Sta ...
- 刷题总结——纸带(NOIP赛前模拟)
题目: 有一个无限长的纸带··上面被划分为若干个格子··现在进行N次操作,第i次操作在L到R上擦出曾经写上的数字(如果有),并写上数字i,询问最终可以看到多少个数字 N小于10^6 题解: 首先毫无疑 ...
- bzoj 3101 N皇后构造一种解 数学
3101: N皇后 Time Limit: 10 Sec Memory Limit: 128 MBSec Special JudgeSubmit: 70 Solved: 32[Submit][S ...
- git常见操作总结
git config --global user.name "liyang"git config --global user.email "liyangslj@126.c ...
- python斐波那契数列复杂度
契数列 概述: 斐波那契数列,又称黄金分割数列,指的是这样一个数列:0.1.1.2.3.5.8.13.21.34.……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n ...
- [LeetCode] Populating Next Right Pointers in Each Node 深度搜索
Given a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *nex ...
- eclipse集成JBPM
JBPM4.4是一款运用的比较广泛的工作流开发框架,最近参与的BSS项目里面也有用到了JBPM4.4.自己在已经搭建的框架下使用,但更详细的理解并没有.因此借此机会学习一下. 学习版本为:JBPM为4 ...
- VIM使用技巧2
假如有以下程序片段: var foo = 1 var bar = 'a' var foobar = foo + bar 如果我们想在每行行尾加上分号, (1)使用$移动光标到行尾, (2)执行a;&l ...
- linux 实现共享内存同步
本文主要对实现共享内存同步的四种方法进行了介绍. 共享内存是一种最为高效的进程间通信方式,进程可以直接读写内存,而不需要任何数据的拷贝.它是IPC对象的一种. 为了在多个进程间交换信息,内核专门留出了 ...
- Codeforces 147B Smile House(DP预处理 + 倍增)
题目链接 Smile House 题意 给定一个$n$个点的有向图,求一个点数最少的环,使得边权之和$>0$,这里的环可以重复经过点和边. 满足 $n <= 300$ 首先答案肯 ...