【问题标题】:Laravel,Dingo Api and Node.js: Data is not passingLaravel、Dingo Api 和 Node.js:数据未通过
【发布时间】:2017-02-13 00:52:09
【问题描述】:

我从未使用过 Dango Api。我也是 node.js 的新手。我正在尝试使用我的 Node.js 访问我的 Laravel 应用程序的链接(路由)。我在我的 Laravel 应用程序中使用 Dango Api。我尝试将数据显示到 UI(node.js 端口)并将该数据打印到控制台。但是我在屏幕上看到空白页,在控制台中显示“未定义”。我在 API 中是全新的。所以,我没有甚至不知道它是否会起作用。所以如果这个问题不适合这个社区的标准,请原谅我。

这是我的 api 路由-

    $api = app('Dingo\Api\Routing\Router');

    $api->version('v1', function ($api) {

    $api->get('/',function(){

    $user= User::where('id',1)->findOrFail();

    return response()->json($user);
  });


});

这是我的 Node.js 文件:

var express = require('express');
var app=express ();
app.get('/api', function (req, res) {
res.send(req.user);
console.log(req.user);
})

var server = app.listen(8081, function () {
   var host = 'localhost'
   var port = 8000

   console.log(host,port);
})

现在,我在 localhost:8081 上收到此错误

 Cannot GET /

【问题讨论】:

  • 你应该只在路由文件中定义你的路由,而不是返回响应和做查询,这属于控制器。我建议你先阅读(非常好的)关于路由和控制器的 Laravel 文档。在您的路线中,您指向控制器中的一个方法,这就是它知道该做什么的方式(这里将是whatevercontroller@welcome)当这一切都完成后,请确保正确设置了 Dingo(您可能需要在 .环境)。您可以使用 POSTMAN 之类的工具轻松测试您的 API。查看laravel.com/docs/5.2
  • 我试图指向一个控制器。= 方法。但我得到一个错误。所以,我使用这个。我不认为这是获取数据的错误方式。
  • 我认为你需要设置一个非常基本的路由,一个非常基本的控制器和方法,它返回一些简单的东西并从那里构建。您需要了解基本概念,因为您在这里走错了方向。逻辑不属于路由,而是属于你的控制器。
  • 你知道Dingo api吗?如果不知道,为什么要在这里浪费时间? @Ben Dubuisson
  • 伙计,是的,我使用 Dingo API,但如果您无法正确掌握 Laravel 基础知识,那么您将无处可去。你的评论是侮辱性的,我想帮忙。

标签: javascript php node.js laravel-5.2 dingo-api


【解决方案1】:

您似乎没有为 /api 声明的路由,而您正试图在 Node 中访问该路由。

您只为根 ('/') 声明了一条路由。

尝试为/api 声明路由。如果需要,您还可以在 .env 文件中为您的 API 设置前缀:

API_VERSION=v1
API_PREFIX=api

【讨论】:

    猜你喜欢
    • 2020-03-16
    • 2016-07-22
    • 2016-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-15
    • 1970-01-01
    • 2018-06-17
    相关资源
    最近更新 更多