2016-11-01 4 views
-1

Ich habe einfache Anwendung auf isomorphe reagieren (zeit/next.js https://github.com/zeit/next.js). Wie kann ich Knotenmodule auf der Serverseite verwenden?Knotenmodule in zeit/next.js verwenden

Code-Beispiel:

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

können Ihr genauer auf das, was dein Problem ist? Sie können so ziemlich alles tun, wo Sie das "wie!" Kommentar. Wenn Ihr Code diese Zeile erreicht, wird die reaktive Komponente vom Server erstellt und Sie können alle Knotenmodule anfordern und aufrufen ... – lipp

Antwort

0

Sie können normalerweise Ihre npm Paket

npm install <name package> 

Und verwenden Sie in Ihrem Code

import <Componente of package> from '<name package>' 

Ich hoffe, dass Hilfe installieren!

1

möchten Sie möglicherweise auch eine benutzerdefinierte server.js verwenden, um einige Daten vom Server im Anfrageobjekt zu senden.

wie

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') 
 
     }) 
 
    })

Verwandte Themen