【问题标题】:Plan .js server vs webpack vs计划 .js 服务器 vs webpack vs
【发布时间】:2018-06-06 18:17:27
【问题描述】:

我真的很困惑。我开始学习使用带有 MEAN 堆栈的 node.js。在没有真正理解的情况下使用 webpack 和 browserfy。

让我感到困惑的是:

  • Express 启动服务器,我可以处理请求
  • Webpack 启动服务器
  • Browserify 启动服务器
  • 只需输入普通的 js,例如var http = require('http'); http.createServer(function (req, res) { ... 启动服务器

嗯,Webpack 和 Browserfy(据我所知)也捆绑了 js 文件。 “幕后”的逻辑是如何工作的,它们是否捆绑了我编写的所有代码并将其发送给客户端(例如我的数据库登录名)?

我读过这篇 Webpack vs webpack-dev-server vs webpack-dev-middleware vs webpack-hot-middleware vs etc ,它告诉我 webpack 在后台使用 express。那么也许 express 也使用了底层的 plan .js 服务器?

好吧,我可以一直这样下去。我有点困惑。

那么,有什么区别,在哪里?你们的应用如何(一起)工作?

【问题讨论】:

    标签: node.js express webpack mean-stack browserify


    【解决方案1】:

    首先express像http模块一样使用node.js的核心API和模块。

    express 使用 http 模块在特定端口创建服务器所以

    app.listen(3000);
    

    简单的会是这样的

    var http = require('http);
    var server = http.createServer() ;
    server.listen(3000) ; 
    server.on('request',function(req,res){
      // here express will do all its magic 
      // and handle the request and response for you under the hood 
    })
    

    第二件事是 webpack 和其他捆绑工具用于在前端而不是后端捆绑文件和资产,它们可以创建简单的服务器来侦听文件中的更改以提供给您其他功能,例如 +实时重新加载 + 热模块更换 但你也可以在后端使用 webpack 来使用 babel-loader 或使用热模块替换功能

    所以 express 适用于后端 而webpack在前端使用它

    您可以在每台服务器上创建不同的端口,并通过 ajax API(如 fetch)在它们之间进行通信 这就是它应该如何工作。

    了解更多 understanding express.js

    understanding express and node fundamentals

    webpack.js concepts and documentation

    【讨论】:

    • 但我不会运行 webpack 或 browserify 来托管页面,对吗?它们仅适用于开发人员?
    • 是的,它们仅用于开发,因此当您安装它们时,您需要指定开发选项 npm i --dev webpack
    猜你喜欢
    • 2018-01-10
    • 2018-10-08
    • 2017-07-10
    • 2017-07-06
    • 2014-08-30
    • 2016-02-09
    • 2016-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多