Node.js 运行node 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

我有我的基本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 + '/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支持什么和不支持什么的页面: