我对同构反应有简单的应用(zeit / next.js https://github.com/zeit/next.js)。 如何在服务器端使用节点模块?
代码示例:
import React from 'react'
export default class extends React.Component {
static async getInitialProps({ req }) {
const isServer = !!req;
if (isServer){
// how!?
}
return {
isServer: isServer
}
}
render() {
return (
<div>test</div>
)
}
}
答案 0 :(得分:1)
您还可能希望使用自定义server.js从请求对象中的服务器发送一些数据。
像
const dev = process.env.NODE_ENV !== 'production'
const { createServer } = require('http')
const { parse } = require('url')
const { readFileSync } = require('fs')
const next = require('next')
const mobxReact = require('mobx-react')
const app = next({ dev })
const handle = app.getRequestHandler()
mobxReact.useStaticRendering(true)
app.prepare()
.then(() => {
createServer((req, res) => {
const parsedUrl = parse(req.url, true)
req.rules = JSON.parse(readFileSync('./micro/rules.json', 'utf8')).rules
handle(req, res, parsedUrl)
})
.listen(3000, err => {
if (err) throw err
console.log('> Ready')
})
})
&#13;
答案 1 :(得分:0)
您通常可以安装npm包
npm install <name package>
并在您的代码中使用
import <Componente of package> from '<name package>'
我希望有所帮助!