上篇我介绍了前端下webpack和react、redux等环境的配置,这篇将继续重点介绍后台node.js的配置。

这里是上篇链接:手把手教你webpack、react和node.js环境配置(上篇)

我把所有代码都放到了我的github上:webpack-react-express环境配置

server

后台这边的配置就简单了很多,我这里拿node.js的express框架来配置。

express

Express 是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架,它提供一系列强大的特性,帮助你创建各种 Web 和移动设备应用。

安装express

npm install express --save

在这里我推荐一个express应用生成器,会帮你自动生成express项目的目录。

npm install express-generator -g

所以在这里我们将此前创建好的server文件夹删除,然后用express自动生成。

rm -rf server && express server

我们先删除自动生成的不需要的目录。

rm -rf views && public

这时候会发现server目录下面也有一个package.json文件,这个文件保存着express需要的依赖,我们可以把里面的内容合并到外面的package.json里面然后再删除,然后不要忘了用npm install来重新安装一遍里面的模块。

我们打开app.js文件,发现里面已经已经写好了代码,但是这些代码并不是完全符合我们需求,比如我们不想使用jade或ejs模板引擎,我们想用前后端分离的开发方式,只想render一个html,我们需要修改一下代码。

因为要用到ejs的一个功能,所以先安装ejs。

// 自动生成的代码
app.set('views', path.join(__dirname, 'views')); // 设置模板的路径
app.set('view engine', 'jade');
app.use(express.static(path.join(__dirname, 'public'))); // 我们修改后的
app.set('views', path.join(__dirname, '../client/dist'));
app.set('view engine', 'html'); // 将模板设置为html
app.engine('html', ejs.renderFile);
app.use(express.static(path.join(__dirname, '../client/dist')));

然后我们删除掉自动生成的路由信息,改为我们的:

// 删掉这些
var index = require('./routes/index');
var users = require('./routes/users');
app.use('/', index);
app.use('/users', users); // 然后添加
var port = 4000;
app.all("*", function(req, res) {
res.render("index");
})
app.listen(port, function() {
console.log("server is running on port 4000");
});

这时候,我们只需要在命令行里面输入node app.js就可以跑了。

但是这样还没完,我们每次运行node是不是都要到server目录下面?我用的不是node新版本,但是我想用es6的语法怎么办?

在express里面使用es2015

还记得上篇我们单独提取出来一个.babelrc文件吗?这个里面已经设置了转码规则,babel-cli自带了一个babel-node命令,它让在node环境里面运行es6的语法成为可能。

开始前我先安利一下nodemon,它可以让node自动重启,而不需要我们每次手动重启node。

npm install nodemon -g

它的用法和node一样,我们可以直接nodemon app.js来开启node服务,当你修改node代码时,它会自动重启node。

我们需要修改一下package.json文件,在scripts属性里面添加一个start属性,并添加以下代码:

  "scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "nodemon ./server/app.js --exec babel-node"
},

把代码修改为es6的语法:

这个时候我们不仅可以在express里面使用最新的es语法,还可以直接用npm start命令来开启node服务。

手把手教你webpack、react和node.js环境配置(下篇)的更多相关文章

  1. 手把手教你webpack、react和node.js环境配置(上篇)

    很多人刚学习react的时候,往往因为繁琐的配置而头疼,这里我将手把手教大家怎么用webpack配置react和redux的环境,这篇教程包括前端react和后台node整个网站的环境配置,对node ...

  2. windows系统下简单node.js环境配置 安装

    国内目前关注最高,维护最好的一个关于nodejs的网站应该是http://www.cnodejs.org/ windows系统下简单nodejs环境配置. 第一步:下载安装文件 下载地址:官网 htt ...

  3. 185.nvm和node.js环境配置

    安装nvm nvm(Node Version Manager)是一个用来管理node版本的工具,我们之所以使用node,是因为我们需要使用node中的npm(Node Package Manager) ...

  4. node.js环境配置(angularjs高级程序设计中出现的错误)

    一:npm install connect会出现错误:解决方法 1:$ npm install connect@2.X.X 2:$ npm install serve-static: 建立server ...

  5. 手把手教windows上安装linux虚拟机及环境配置

    目录 版本说明 安装虚拟机 典型方式安装(推荐小白,带有图形界面,助于学习,但占用空间大) 自定义方式安装(推荐老司机) 创建快照 克隆虚拟机 windows上安装linux虚拟机不管是对于新人还是老 ...

  6. 使用React、Node.js、MongoDB、Socket.IO开发一个角色投票应用的学习过程(三)

    这几篇都是我原来首发在 segmentfault 上的地址:https://segmentfault.com/a/1190000005040834 突然想起来我这个博客冷落了好多年了,也该更新一下,呵 ...

  7. 认识Web前端、Web后端、桌面app和移动app新开发模式 - 基于Node.js环境和VS Code工具

    认识Web.桌面和移动app新开发模式 - 基于Node.js环境和VS Code工具 一.开发环境的搭建(基于win10) 1.安装node.js和npm 到node.js官网下载安装包(包含npm ...

  8. Node.js环境搭建&&npm安装

    Node.js环境搭建 什么使Node.js呢?我们知道JavaScript开始作为客户端语言,但早已在浏览器端一统江湖,这时,野心越来越大,它就想向服务器端拓展了,于是Node.js就是这样的,我们 ...

  9. node.js环境安装,及连接mongodb测试

    1.node.js环境安装 npm config set python python2.7npm config set msvs_version 2013npm config set registry ...

随机推荐

  1. ceentos5.5 配置samba服务&用户&组

    准备 Change Root Password passwd root 在提示下建立新密码 静态IP vi /etc/sysconfig/network-scripts/ifcfg-eth0  #网络 ...

  2. PHP做负载均衡回话保持问题参考

    最近一个项目的服务器老是出现Session数据丢失问题,导致用户莫名其妙的退出,原因是太相信我们的运维人员所谓的负载均衡会话保持的概念.会话保持 的原理就是负载均衡通过Cookie来分发那个客户连接被 ...

  3. C的memcpy和strcpy的区别

    strcpy是拷贝字符串,以\0为标志结束(即一旦遇到数据值为0的内存地址拷贝过程即停止) strcpy的原型为 char *strcpy(char *dest, const char *src) 而 ...

  4. SVG的内部事件添加

    SVG的内部事件添加: <%@ page language="java" contentType="text/html; charset=UTF-8" p ...

  5. LazyInitializationException--由于session关闭引发的异常

    1,页面中进行person.department.departmentName的读取 2,Action 中只读取了person,事务作用在Service的方法中 3,后台会有org.hibernate ...

  6. 大咖,我能转行做UX设计师吗?

    前几天,有个朋友找到我,叫我给分析下他适不适合转UX设计.他的专业是建筑设计,之所以要辞职,也就是公司破事多,老板又不看重他.看到UX设计这个行业的前景很不错,想要转行.他说的也没错, 现在的UX设计 ...

  7. CodeForces 451B

    Sort the Array Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Sub ...

  8. 项目实战(连载):基于Angular2+Mongodb+Node技术实现的多用户博客系统教程(2)

    本章主要讲什么(一句话)?   <项目实战:基于Angular2+Mongodb+Node技术实现的多用户博客系统教程(2)> -- 基于MongoDB的MyBlog数据库知识技术储备(上 ...

  9. display的none与block(判断登录界面的账号密码是否为空)

    判断登录界面的账号密码是否为空的时候又不想用alert显示就需要用display来隐藏alert啦(在设置时切忌要将隐藏的内容写在账号和密码的div中,否则会根据屏幕的分辨率不同而有所变化,这是本人教 ...

  10. <C++Primer>第四版 阅读笔记 第一部分 “基本语言”

    之前阅读时没有及时总结,现在慢慢补上. 第1章 快速入门 main 函数在很多方面都比较特别,其中最重要的是每个C++程序必须含有 main 函数,且 main 函数是(唯一)被操作系统显示调用的函数 ...