如何在电子项目中成功使用快速路由?

Posted

技术标签:

【中文标题】如何在电子项目中成功使用快速路由?【英文标题】:How to successfully use express routing in electron project? 【发布时间】:2018-02-09 10:59:50 【问题描述】:

我在我的Electron 项目中使用ExpressJSExpress 的路由没有按预期工作。

这是我创建路由的方式(在主进程中):

const express = require('express')

const app2 = express()

app2.get('/requests/:_id', (req, res, next) =>   
  console.log('Dynamic Link WORKS!!');
  hosSchemaModel.findOne( _id: req.params._id , function(err, request)
    res.json(request)
    // res.sendFile(path.join(__dirname+'../homePage.html'))
  );
);

在前端我有以下内容:

<a href="/requests/this._doc._id">this._doc.status</a>

当我点击 this._doc.status 时,我会进入空白屏幕,控制台中没有打印任何内容。

我可以提供一些关于如何在Electron 中实现ExpressJS 路由的指导吗?

【问题讨论】:

大胆猜测,在 href 中的 ID 值前加上明确的“:”前缀 @RobertRowntree 我得到了相同的结果,空白屏幕,没有任何内容打印到控制台 【参考方案1】:

只是在黑暗中拍摄,但如果没有端口,您将无法连接。尝试将此添加到服务器文件的末尾。 'app2.port(9000)` 然后尝试访问相同的 URL,但使用端口。

【讨论】:

我试过 var port = process.env.PORT || 8080; app2.listen(端口);但是没有用【参考方案2】:

Electron 基本上有两个进程主进程和渲染进程,当你打印 console.log 时,它基本上是在你主进程的控制台中打印。您必须将数据传递给渲染器进程才能显示在网页的控制台中。

更新 - 2

让 express 服务器监听某个端口,然后从前端点击具有该端口的 url。

Main.js

app2.get('/requests/1234', (req, res, next) =>   
  console.log('Dynamic Link WORKS!!');
  hosSchemaModel.findOne( _id: req.params._id , function(err, request)
    res.json(request);
    // res.sendFile(path.join(__dirname+'../homePage.html'))
  );
);

app2.listen(5000, function () 
  console.log('Example app listening on port 3000!');
);

前端

<a href="localhost:5000/requests/1234">this._doc.status</a>

在此之后,它在我的最后工作。

如果你想在集群模式下运行 express 服务器,你应该 fork 进程并尝试在新进程中运行 express 服务器。

【讨论】:

应该在终端打印,但不是! 让express服务器监听某个端口,然后从前端点击url,更新答案,请检查是否正常。

以上是关于如何在电子项目中成功使用快速路由?的主要内容,如果未能解决你的问题,请参考以下文章

如果我使用带有电子 js 的 vue 路由器,如何修复空白页?

电子路由+创建反应应用程序

如何在g套件中路由传入的非用户电子邮件ID

Node.js 如何在快速路由中使用 socket.io

如何在快速路由器获取请求中从节点获取中使用获取

如何在快速路由器中使用正文解析器?