У меня есть основные server.js:Запуск узла 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');
однако у меня теперь есть среагировать-маршрутизации, которые я хочу импортировать, так что, когда браузер обновляется на сервере страница по-прежнему доступна.
Моя попытка до сих пор:
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');
, но когда я бегу «узел server.js» Я получаю следующее сообщение об ошибке:
(function (exports, require, module, __filename, __dirname) { import express from 'express';
^^^^^^
SyntaxError: Unexpected reserved word
'import' - ключевое слово ES2015, которое NodeJS не распознает. Вам придется использовать прерванную версию этого файла. –
, но этот «app.get ('/', (req, res) => {" (функция стрелок) уже был на моем предыдущем сервере.js, что означает, что ES2015 можно использовать – Alex
Вправо, поэтому вам нужно будет запустить выложенная версия этого файла. У узла была ранняя поддержка толстых стрелок, вам приходилось работать с «--harmony», а затем, в какой-то момент, я думаю, что это был родной, не помните. «import» вы будете необходимо перевести с вашей версией Node, точно так же, как указывает ошибка. –