express紧急回顾随笔
四行代码搭建服务器
var express = require('express');
var app = express();
//设定静态路径 所有请求优先在此路径查找
//不要把服务器配置JS文件和静态页面放在同一个文件夹!!!!
app.use(express.static(path.join(__dirname, 'static')));
app.listen(9000);
常用插件
//需要npm install
//可以在服务器打印请求信息 超级好用
var morgan = require('morgan');
//就这样调用
app.use(morgan('short'));
路由(妈个鸡,被坑了一上午)
首先是主服务器配置的内容,需要引进对应的专业路由js文件。
//引入对应的JS文件 可以省略js后缀 因为js会被优先查找
var apiRouter = require("./router/api_router");
//注意!!!第一个参数代表对应路径请求转接
app.use("/index", apiRouter);
然后是路由js文件对应的内容。
//话不多说 先引这两
var express = require("express");
var path = require('path');
//实例化一个路由对象
var api = express.Router();
//这个路由处理来自index的post请求
api.post('/', function(req, res) {
console.log(req.body);
res.sendFile(path.join(__dirname, '../static/index.html'));
});
举个例子!
api.post('/', function(req, res) {
//获取post请求传入的账号密码
var user = req.body.username,
password = req.body.password;
//进行判断 老子还不会数据库啊
if (user === 'admin' && password === 'admin') {
//通过 给你index页面
res.sendFile(path.join(__dirname, '../static/index.html'));
} else {
//失败 回去你的login吧
res.redirect('./login.html');
}
});
又找到一个坑!
//为了解析post 这个需要在主配置中引用
app.use(bodyParser.urlencoded({ extended: false })); //默认根路径会指向index.html
//需要在前面使用get劫持请求然后重定向
app.get('/', function(req, res) {
console.log(12);
res.redirect('./login.html');
}); //设定静态路径 所有请求优先在此路径查找
//不要把服务器配置JS文件和静态页面放在同一个文件夹!!!!
app.use(express.static(path.join(__dirname, 'static')));
大功告成,假设静态目录下有login.html和index.html,login中有一个表单,输入账号密码然后post请求index页面,服务器这边就可以在路由里面搞事情处理这个跳转了。更多内容,等我再出bug。
发现一个中间件,可以将webpack与node的热加载配合在一起,同时完成打包与页面热加载,吊的1B。
话不多说,直接上代码。
//直接引用这个中间件
var webpackDevMiddleware = require("webpack-dev-middleware");
//获取webpack
var webpack = require("webpack");
//配置文件
var compiler = webpack({
//入口文件为刚才的main.js
entry: './static/js/main.js',
//随便找个地方输出
output: {
path: path.resolve(__dirname, './static'),
publicPath: '/static/', },
module: {
rules: [
//处理vue单文件
{
test: /\.vue$/,
loader: 'vue-loader'
},
//处理import等语法
{
test: /\.js$/,
loader: 'babel-loader',
exclude: /node_modules/
},
]
},
});
//链接webpack与express
app.use(webpackDevMiddleware(compiler, {
// options
}));
这时候,修改vue文件,保存之后,会直接自动打包,刷新后可以直接渲染更新到到页面上!
express紧急回顾随笔的更多相关文章
- C#知识点回顾随笔目录导航
此随笔只是春节期间回顾知识点,阅读<<C#学习笔记>>记录(2019-2-4至2019...); 使用有道云笔记记录可能会有些排版问题 思维导图预览(使用的有道云,无法截取完整 ...
- OpenStack回顾随笔(第一章)
1. OpenStack历史 OpenStack前身是NASA和Rackspace合作的项目,2010年开源,与其他主流开源云管理系统:Citrix的Cloudstack和桉树的OpenNebu ...
- html回顾随笔JS(*^__^*)
---恢复内容开始--- map遍历 function b(){ var week = new Map(); week.set("Mon","星期一"); we ...
- html回顾随笔1(*^__^*)
1.text—align 与float 区别: float是针对div一类的容器来说.text-align是对于容器里的文本或者图片来说靠左或靠右水平对齐(vlign 竖直方向) 要注意以下几点: ...
- 攻克vue路由
先下手 路由是个好功能,但是每次都感觉没法开始下手,愣愣的看半天官方文档,所以做个快速开始教程. 首先先搭好HTML文件结构: <!--link和view在一个父元素下--> <di ...
- express 随笔
#express 1.使用Express 应用生成器 npm install express-generator -g 2.创建一个命名为 myapp 的应用 express myapp 3.安装所有 ...
- express随笔
Express 是node 第三方框架,框架的意义就在于能大大简化程序地开发.看一下Express是怎么简化node程序开发的. 1,用Express写一个hello world 程序,我们来体验一下 ...
- nodejs开发 express路由与中间件
路由 通常HTTP URL的格式是这样的: http://host[:port][path] http表示协议. host表示主机. port为端口,可选字段,不提供时默认为80. path指定请求资 ...
- Nodejs学习(二)-express生成器
1.安装生成器 sudo npm install express-generator -g 2.做ln链接,这个我就不介绍了,可以参照上个随笔,指向/usr/local/bin就行. 3.生成项目文件 ...
随机推荐
- Bootstrap框架的了解和使用之栅格系统
前 言 Bootstrap Bootstrap 包含了一个响应式的.移动设备优先的.不固定的网格系统,可以随着设备或视口大小的增加而适当地扩展到 12 列.它包含了用于简单的布局选项的预定 ...
- js 倒计时(服务器时间同步)
首先说一下,为什么要服务器时间同步, 因为服务器时间和本地电脑时间存在一定的时间差.有些对时效性要求非常高的应用,例如时时彩开奖,是不能容忍这种时间差存在的. 方案1:每次倒计时去服务端请求时间 // ...
- String的replace和replaceAll
replace(CharSequence target, CharSequence replacement) 这里CharSequence是一个接口 实现类包括CharBuffer, Segement ...
- LinkedHashMap 源码解析
概述: LinkedHashMap实现Map继承HashMap,基于Map的哈希表和链该列表实现,具有可预知的迭代顺序. LinedHashMap维护着一个运行于所有条目的双重链表结构,该链表定义了迭 ...
- HDFS 分布式写入问题 AlreadyBeingCreatedException
进行追加文件时出现AlreadyBeingCreatedException错误 堆栈信息大致如下: org.apache.hadoop.ipc.RemoteException(org.apache.h ...
- linux下c语言的多线程编程
我们在写linux的服务的时候,经常会用到linux的多线程技术以提高程序性能 多线程的一些小知识: 一个应用程序可以启动若干个线程. 线程(Lightweight Process,LWP),是程序执 ...
- ZOJ2286 Sum of Divisors 筛选式打表
我想我是和Segmentation Fault有仇,我一直以为是空间开大的问题,然后一直减少空间,还是SF,谁让n没有给范围了,qwq. 教训:以后注意输入范围和开的空间大小. #include< ...
- java web 项目 图书管理系统的设计与实现
java web 项目 图书管理系统的设计与实现
- this到底指向哪里
this指向调用它的对象 首先要明确,this指向调用方,谁调用,this指向谁. 直接调用 举个栗子: var test = 'window' ; function testThis () { va ...
- MSSQL查询数据分页
这几天刚好碰到数据的分页查询,觉得不错,Mark一下,方法有两种,都是使用select top,效率如何就不在这讨论 方法1:利用select top配合not in(或者not exists),查询 ...