【问题标题】: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 我得到了相同的结果,空白屏幕,没有任何内容打印到控制台

标签: node.js express electron


【解决方案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,更新答案,请检查是否正常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-17
  • 1970-01-01
  • 2018-10-06
  • 2021-02-13
  • 2018-09-27
  • 2018-01-25
  • 1970-01-01
相关资源
最近更新 更多