Javascript 使用React头盔进行React路由器服务器端渲染?
我只是在学英语。我想用React js、React路由器和React头盔进行整版服务器端渲染 但我面临着这个错误 TypeError:无法读取未定义的属性“create” 我使用此github回购协议作为参考: server.jsJavascript 使用React头盔进行React路由器服务器端渲染?,javascript,node.js,reactjs,react-router,helmet.js,Javascript,Node.js,Reactjs,React Router,Helmet.js,我只是在学英语。我想用React js、React路由器和React头盔进行整版服务器端渲染 但我面临着这个错误 TypeError:无法读取未定义的属性“create” 我使用此github回购协议作为参考: server.js import express from 'express'; import mysql from 'mysql'; import webpack from 'webpack'; import path from 'path'; import config from
import express from 'express';
import mysql from 'mysql';
import webpack from 'webpack';
import path from 'path';
import config from './webpack.config.dev';
import React from 'react';
import Router from 'react-router';
import Helmet from 'react-helmet';
import routes from './src/App';
const app = express();
const compiler = webpack(config);
app.use(require('webpack-dev-middleware')(compiler, {
noInfo: true,
publicPath: config.output.publicPath
}));
//
// app.use(require('webpack-hot-middleware')(compiler));
app.set('view engine','ejs');
app.use(express.static('./public'));
const pool = mysql.createPool({
connectionLimit:100,
host:'127.0.0.1',
user:'root',
password:'123456',
database:'naveen'
});
app.get('*',function (req,res) {
let router = Router.create({
location:req.url,
routes:routes
});
router.run(function (Root,state) {
let renderedBody = React.renderToString(<Root/>);
let head = Helmet.rewind();
let html = `
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>${head.title}</title>
${head.meta}
${head.link}
</head>
<body>
<div id="app">${renderedBody}</div>
<script src="./public/bundle.js"></script>
</body>
</html>
`;
res.write(html);
res.end();
})
});
app.get('/api',function (req,res) {
pool.getConnection(function (err,connection) {
connection.query('SELECT * FROM users',function (err,rows) {
if(err) throw err;
console.log(rows[0]);
res.send(rows);
connection.release()
})
})
});
const port = 3000;
console.log(`Server Initializing ${port}`);
app.listen(port,function (err) {
if(err) throw err;
console.log(`I am Alive at ${port} `)
});
从“express”导入express;
从“mysql”导入mysql;
从“网页包”导入网页包;
从“路径”导入路径;
从“./webpack.config.dev”导入配置;
从“React”导入React;
从“反应路由器”导入路由器;
从“反应头盔”导入头盔;
从“/src/App”导入路由;
常量app=express();
const compiler=webpack(config);
app.use(需要('webpack-dev-middleware')(编译器{
没错,
publicPath:config.output.publicPath
}));
//
//app.use(需要('webpack-hot-middleware')(编译器));
app.set('view engine','ejs');
应用程序使用(快速静态('./公共');
constpool=mysql.createPool({
连接限制:100,
主持人:'127.0.0.1',
用户:'root',
密码:'123456',
数据库:'naveen'
});
app.get('*',函数(req,res){
让router=router.create({
位置:req.url,
路线:路线
});
router.run(函数(根、状态){
让renderBody=React.renderToString();
让头=头盔。倒带();
让html=`
${head.title}
${head.meta}
${head.link}
${renderedBody}
`;
res.write(html);
res.end();
})
});
app.get('/api',函数(req,res){
pool.getConnection(函数(err,connection){
connection.query('SELECT*FROM users',函数(err,rows){
如果(错误)抛出错误;
console.log(行[0]);
res.send(行);
connection.release()
})
})
});
常数端口=3000;
log(`Server initialization${port}`);
应用程序侦听(端口、功能(错误){
如果(错误)抛出错误;
log(`I在${port}`处处于活动状态)
});
还有其他错误吗?很难知道哪个create()是未定义的。不确定这是否真的影响很大,但我会修复路由器的导入,以便只有一个空间。还有其他错误吗?很难知道哪个create()是未定义的。不确定这是否真的影响很大,但我会修复路由器的导入,以便只有一个空间。