2016-05-17 116 views
1

我有一个节点服务器:Laravel 5狂饮和的NodeJS

'use strict'; 

require('babel-register')({ 
    presets: ['es2015', 'react'] 
}); 
var React = require('react'); 
var ReactDOMServer = require('react-dom/server'); 
var express = require('express'); 
var path = require('path'); 
var bodyParser = require('body-parser'); 

var app = express(); 
app.use(bodyParser.json()); 
app.use('/', function(req, res) { 
    try { 
     var view = path.resolve('public/src/' + req.query.module); 
     var component = require(view).default; 
     var props = req.body || null; 
     res.status(200).send(
      ReactDOMServer.renderToString(
       React.createElement(component, props) 
      ) 
     ); 
    } catch (err) { 
     res.status(500).send(err.message); 
    } 
}); 

app.listen(3000); 
console.log('Listening carefully...') 

并有Laravel路线:

use GuzzleHttp\Client; 

Route::get('/{name?}', function($name) { 
    $client = new Client(['base_url' => 'http://10.0.1.123:3000']); 
    $response = $client->post('/', [ 
     'json' => ['name' => ucfirst($name ?: 'World')], 
     'query' => ['module' => 'hello'], 
    ]); 
    $contents = $response->getBody()->getContents(); 

    return response($contents, 200); 
}); 

问题是,当我浏览的网页它给了我:

创建资源时出错:[message] fopen(/?module = hello):未能打开流:没有这样的文件或目录

我觉得我需要为刚刚hello阅读,没有所有与它的查询语法,因为我的Laravel路由/hello,而不是?module=hello

我怎样才能得到这个做呢?

回答

0

看来base_url应该是base_uri,一定是我用过的教程或文档中的一个错字:/