美文网首页
React+webpack+express的小demo

React+webpack+express的小demo

作者: 小m_up | 来源:发表于2017-02-18 12:13 被阅读580次

    要写一个React+webpack+express的小demo那么先得写React然后再用webpack进行打包,最后再加服务器express,而我上篇文章用webpack打包react+ES6刚好解决了前面的问题,这篇文章是接着上篇写的,只是用来加服务器express。当然了,想先了解一下express的,可以看一下我的一个express的小demo

    那么我们先来看一下上次webpack+React的文件结构:

    那么接下来就开始加express了:

    • 安装express
      安装 Express 并将其保存到依赖列表中:
    $ cnpm install express --save
    
    • 安装express的依赖
      安装express的依赖,并将其使用--save添加到package.json文件中
    $ cnpm install body-parser cookie-parser multer --save
    
    • 创建文件
      先创建一个server文件,然后再打开文件,将代码写进去即可。
    $ touch server.js
    $ vim server.js
    

    server.js中写入下面代码:

    const express = require('express');
    const app = express();
    app.use(express.static(__dirname + '/public'));
    app.get('/', function (req, res) {
        res.sendFile(__dirname +'/index.html');
    });
    app.listen(3000, () => {
        console.log('Server started.');
    });
    

    这里说一下app.use(express.static(__dirname + '/public'));这个的主要作用,刚开始因为自己没有很清楚的理解这个,所以就遇到了一些问题。
    这句代码在教程中是这样说的:设置静态文件目录。
    那么这是什么意思呢?express会根据静态文件目录去查找静态文件,所以静态目录就不需要作为URL的一部分了,简而言之,你要访问public文件夹下的文件,那么你的URL就不需要有public,它默认会去public下找你所需要的文件,比如你想要访问public下的main.js文件,那么你的URL就是http://localhost:3000/main.js,而不需要再加public,这样说应该就比较明了了。

    • 修改index.html
      之前index.html中的代码是这样的
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset = "UTF-8">
        <title>react-webpack-express-demo</title>
    </head>
    <body>
        <div id = "app"></div>
        <script src="./public/out/bundle.js"></script>
    </body>
    </html>
    

    那么为了让它运行不出错,把<script src="./public/out/bundle.js"></script>这句改为:

     <script src="./out/bundle.js"></script>
    

    现在该更清楚的知道app.use(express.static(__dirname + '/public'));的意义了吧,要访问public下的out/bundle.js那么URL就不需要public。
    那么我们的这个demo就完美结束啦。

    • 运行方式
    $ npm run build
    $ node server.js
    

    此时打开http://localhost:3000/就可以看见Hello World!了

    源码地址:https://github.com/yangzhanmei/react-webpack-express-demo

    相关文章

      网友评论

          本文标题:React+webpack+express的小demo

          本文链接:https://www.haomeiwen.com/subject/lxvrwttx.html