Node.js 运行node server.js时抛出语法错误
我有我的基本server.js:Node.js 运行node server.js时抛出语法错误,node.js,express,reactjs,Node.js,Express,Reactjs,我有我的基本server.js: var express = require('express'); var path = require('path'); var port = process.env.PORT || 8080; var app = express(); app.use(express.static('src/client/')); app.get('/', (req, res) => { res.sendFile(path.resolve(__dirname
var express = require('express');
var path = require('path');
var port = process.env.PORT || 8080;
var app = express();
app.use(express.static('src/client/'));
app.get('/', (req, res) => {
res.sendFile(path.resolve(__dirname + '/src/client/index.html'))
});
app.listen(port);
console.log('server started');
但是,我现在有一个要导入的react路由,以便在服务器上刷新浏览器时仍然可以访问页面
到目前为止,我的努力是:
import express from 'express';
import path from 'path';
import React from 'react';
import { renderToString } from 'react-dom/server';
import { match, RouterContext } from 'react-router';
import routes from './src/client/app/config/routes.jsx';
let port = process.env.PORT || 8080;
let app = express();
app.use(express.static('src/client/'));
// app.get('/', (req, res) from> {
// res.sendFile(path.resolve(__dirname + '/src/client/index.html'))
// });
app.get('/', (req, res) => {
match(
{ routes, location: req.url },
(err, redirectLocation, renderProps) => {
// in case of error display the error message
if (err) {
return res.status(500).send(err.message);
}
// in case of redirect propagate the redirect to the browser
if (redirectLocation) {
return res.redirect(302, redirectLocation.pathname + redirectLocation.search);
}
// generate the React markup for the current route
let markup;
if (renderProps) {
// if the current route matched we have renderProps
markup = renderToString(<RouterContext {...renderProps}/>);
}
// else {
// // otherwise we can render a 404 page
// markup = renderToString(<NotFoundPage/>);
// res.status(404);
// }
// render the index template with the embedded React markup
return res.render(path.resolve(__dirname + '/src/client/index.html'));
}
);
});
app.listen(port);
console.log('server started');
除了导入/导出关键字外,ES6中的所有内容都可以在新版本的node中工作。您必须使用gulp、webpack等将其传输到ES5。除了导入/导出关键字之外,ES6中的几乎所有内容都在新版本的node中工作。您必须使用gulp、webpack等将其传输到ES5。
import
是NodeJS无法识别的ES2015关键字。您必须使用此文件的传输版本。但是此“app.get('/',(req,res)=>{”(箭头函数)在我以前的server.js中已经存在,这意味着ES2015可以直接使用,因此您必须运行此文件的传输版本。Node早期支持胖箭头;您以前必须使用--harmony
运行,然后在某个时候我认为它是本机的--不记得了。import
您需要使用Node的版本,正如错误所示。Node.js现在确实支持ES6的所有功能,尽管它确实支持很多功能。这是一个列出Node支持什么和不支持什么的页面:import
是NodeJS无法识别的ES2015关键字。您将必须使用此文件的传输版本。但这是“app.get”(“/”,(请求,res)=>{”(箭头函数)在我以前的server.js中已经存在,这意味着ES2015可以直接使用,因此您必须运行此文件的传输版本。Node早期支持胖箭头;您以前必须使用--harmony
运行,然后在某个时候我认为它是本机的--不记得了。import
您需要使用Node的版本,正如错误所示。Node.js现在确实支持ES6的所有功能,尽管它确实支持很多功能。这是一个列出Node支持什么和不支持什么的页面: