用于混合应用程序开发的Node js + Laravel + python通信

时间:2018-04-27 06:01:54

标签: python node.js laravel

我需要开发一个带有节点js的混合应用程序,用于用户身份验证和laravel用于app功能,而python用于复杂计算。因此,前面的每个请求都应该到达节点js,并且从那里请求将被转移到相应的平台(laravel或pynton).Node js应该充当这个中间件。如何在这些多个平台之间进行通信,并且是可用于这种混合应用程序开发的任何架构。可以使用REST apis进行通信,但是如何可以进行身份​​验证。

1 个答案:

答案 0 :(得分:0)

NodeJS 中的

:您可以将ExpressJS http://expressjs.com/框架用于REST API

Python 中的

:您可以将Django框架https://www.djangoproject.com/用于REST API

您可以将AJAX request从使用Laravel构建的前端发送到您的NodeJS服务器,并在验证登录后,您可以发送如下所示的用户身份验证状态:

登录失败:

{ 
  status:"error",
  message:"Login Failed , Invalid Credentials"
}

登录成功:

{
    status:"success",
    message:"Login Successful",
    user:{ 
       id:"",
       name:"",
       email:"",
       ...
    }
 }

但现在您必须将此用户登录到您的Laravel系统,所以

  

您需要为登录,注销和注册开发自定义功能。

但这不是正确的方法,因为它变得非常耗时,相反我建议您只使用一个命令php artisan make:auth <使用Laravel内置的 Auth系统 / p>

我还建议你选择NodeJS或Laravel作为后端,因为两者都很强大。

在NodeJS中提供各种NPM包:

expressjs:http://expressjs.com/

护照:http://www.passportjs.org/

body-parser:https://www.npmjs.com/package/body-parser

multer:https://github.com/expressjs/multer

ejs:http://ejs.co/

异步:https://caolan.github.io/async/

请求:https://github.com/request/request

socket-io:https://socket.io/

lodash:https://lodash.com/docs/

时刻:http://momentjs.com/

nodemailer:https://nodemailer.com/about/

node-mysql:https://github.com/mysqljs/mysql

猫鼬:http://mongoosejs.com/docs/

redis:http://redis.js.org/

在Laravel中,您可以使用composer

使用不同的包

社交名媛:https://github.com/laravel/socialite

护照:https://github.com/laravel/passport

PHP邮件程序:https://github.com/PHPMailer/PHPMailer

碳:http://carbon.nesbot.com/docs/

Pusher:https://pusher.com/

等...... Laravel提供了许多内置的功能。

如果您的系统拥有的用户数量超过将NodeJS用作Backend更好的用户。

最后根据您的要求,选择是您的。您可以通过创建REST API端点并使用前端的AJAX调用它们来在这些应用程序之间进行通信。