【问题标题】:Laravel 5 with Guzzle and NodeJS带有 Guzzle 和 NodeJS 的 Laravel 5
【发布时间】:2016-09-13 16:23:55
【问题描述】:

我有一个节点服务器:

'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

我怎样才能做到这一点?

【问题讨论】:

    标签: php node.js laravel reactjs laravel-5


    【解决方案1】:

    似乎 base_url 应该是 base_uri,一定是我使用的教程或文档中的拼写错误:/

    【讨论】:

      猜你喜欢
      • 2019-06-19
      • 2017-11-15
      • 2018-07-31
      • 2015-07-05
      • 2020-04-25
      • 1970-01-01
      • 2015-07-16
      • 2016-12-30
      • 2015-05-15
      相关资源
      最近更新 更多