初试express

童猛
• 阅读 2253

express是什么?

express 是nodejs一个很著名的框架。 其地位就有点像react在js里面的地位。就算你不打算使用它,也可以学习下,取长补短。express的核心就是中间件

要实现的功能如下

  1. 创建一个http服务器
  2. 能够返回静态文件
  3. 能够提供api
var express = require('express');
var app = express();
app.use(function(req, res){
    res.send('hello express!');
});
app.listen(8001,function(){
    console.log('监听8001端口');
});

ok 上述代码就实现功能一。默认监听的本地IP 网址:http://localhost 它对于一切返回值都返回了hello express!
对比于nodejs的hello world.例子。细心的你会发现少了输入res头的步骤。res.writeHead(200,xxx),没错这是框架已经帮你处理掉的。默认就是200 text/html。当然你也可以自定义返回头,res.type()之类,具体请查看api。

var express = require('express');
var app = express();
app.use(express.static('static', {Mixed: false}));
app.use(function(req, res){
    res.send('hello express!');
});
app.listen(8001,function(){
    console.log('监听8001端口');
});

初试express

你大概需要这样的文件结构。express.static是express4 目前仅保留的中间件,也是目前唯一保留的一个中间件(可见其钢需,与通用)。查看其中源模块是serve-static。小小的一行中间件其实代码量还是很复杂。具体可以看一篇文章nodejs实现静态服务器。很细致全面的说明了一个静态服务器所要做的事情。
第一个参数'static'是表示静态文件目录名字没有/说明是相对路径哦 '/static'是绝对路径,当你路由写在其他目录里要小心了区分下。
{Mixed: false}是当路径为'/'返回静态文件下的不返回index.html

var express = require('express');
var app = express();
app.use(express.static('static', {Mixed: false}));

app.get('/get',function(req, res){
    var data = {msg: '这是get'};
    res.json(data);
});
app.get('/post',function(req, res){
    var data = {msg: '这是post'};
    res.json(data);
});

app.use(function(req, res){
    res.send('hello express!');
});


app.listen(8001,function(){
    console.log('监听8001端口');
});

这样就服务器就提供了两个api接口,地址是'/get'和'/post',返回这时候就是一个json对象。用的方法是res.json()区别于res.send()就是组装成json格式。 至此就完成了三个基本功能。迈出了第一步!

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
3年前
VBox 启动虚拟机失败
在Vbox(5.0.8版本)启动Ubuntu的虚拟机时,遇到错误信息:NtCreateFile(\\Device\\VBoxDrvStub)failed:0xc000000034STATUS\_OBJECT\_NAME\_NOT\_FOUND(0retries) (rc101)Makesurethekern
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Stella981 Stella981
3年前
Express 的使用
以下内容,基于Express4.x版本Node.js的Express_Express_ 估计是那种你第一次接触,就会喜欢上用它的框架。因为它真的非常简单,直接。在当前版本上,一共才这么几个文件:lib/├──application.js├──express.
Wesley13 Wesley13
3年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Stella981 Stella981
3年前
Hello Kraken.js!
<p&160;</p<h2前言</h2<pkraken.js由paypal公司开源的一个用于快速开发基于Express.js框架应用的快速开发工具,因为kraken并没有在Express.js基础上更改多少东西,只是在原来的express基础上补充了一些约定开发的规则,让开发根据便捷.</p<h2你好,世界!</h2<p
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
5个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(