【发布时间】:2017-05-30 21:52:43
【问题描述】:
我曾经使用 Node 作为后端,使用 React 作为前端,并且没有服务器问题。现在我已在前端更改为 jumpsuit,但在尝试运行 Node 服务器时遇到了 websocket 错误。
更具体地说,当我运行 Node 服务器时,它在端口上启动,但是当我到达 localhost:9000 时,页面是空白的,并且控制台出现此错误:
这是我的节点:
Server.js
(function() {
"use strict";
// Express
const express = require('express');
const app = express();
const path = require('path');
const bodyParser = require('body-parser');
// Middleware
app.use(bodyParser.json({limit: '10mb'}));
app.use(bodyParser.urlencoded({limit: '10mb', parameterLimit: 1000, extended: true}));
app.use('/', express.static(path.join(__dirname, '../dist')));
app.get('/search', require('./routes/search.js'));
module.exports = app;
}());
Serve.js
(function() {
'use strict';
// Import 'app' from server.js
var server = require('./server.js')
var WebSocketServer = require('ws').Server;
var wss = new WebSocketServer({noServer: true});
// Set port as either specified by command line or 9000
server.set('port', (process.argv[2] || 9000));
// Start server
server.listen(server.get('port'), () => {
console.log(`Server started: http://localhost:${server.get('port')}/`);
});
server.on('upgrade', wss.handleUpgrade);
}());
我的 index.html 只是简单的骨架:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Welcome to Jumpsuit</title>
<link rel="stylesheet" href="app.css" charset="utf-8">
</head>
<body>
<div id="app"></div>
<script src="app.js"></script>
</body>
</html>
就我个人而言,我知道他们都在工作。如果我使用 index.html 和 app.js 并使用“jumpsuit watch”启动它,那么它可以工作,或者如果我从 index.html 中删除 <script src="app.js"></script> 并运行 Node,那么页面加载一切正常,所以单独使用连身衣和节点部分工作。但我只是想知道如何将它们结合起来。
谢谢
【问题讨论】:
标签: node.js reactjs redux frontend backend