问题标签 [express-router]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1370 浏览

json - 请求正文中的 json 格式错误

在我们的反应应用程序中,我们将在文本区域中输入的 json 字符串发布到快速路由器功能。在客户端,我们使用 axios 将数据发布到 express 路由器。

我们确实在快速路由器功能中接收数据,例如:

但是当我们检查在路由器函数中接收到的数据时,我们传递的 json 被另一个花括号包裹:

外部大括号似乎是自动添加的,因此 JSON.parse 失败。

有没有办法避免这种情况?

0 投票
1 回答
80 浏览

node.js - 使用 express.router 找不到 Route 404

一般来说,我是表达和节点的新手,我有两个具有相同路径但方法不同的路由处理程序。我正在使用express.router(),并建议我像这样链接路由处理程序,但我得到 404 Not found for GET /status 但是如果我删除我的中间件,这些路线就可以工作.all(verifytoken)

/状态控制器

/中间件

0 投票
1 回答
2467 浏览

node.js - Node.js : 表达路由,从数据库中查询数据并在 template.hbs 视图中渲染

我想创建一个 Node.js 应用程序,它对某些网站进行网络抓取,将数据保存在 PostgreSQL 数据库中,然后在网页上显示这些数据的可视化(在 D3.js 中)。我考虑过拆分前端部分(创建和显示可视化)和后端部分(进行网络抓取和更新数据库)。

两个应用程序的骨架(有两个是因为我把任务分成了两个应用程序)如下。

后端应用程序 ( scraper):

  • 连接到数据库
  • 如果表不存在则创建表
  • 数据刮板
  • 将数据保存在数据库中
  • 与数据库断开连接。

这个后端应用程序一年只能启动几次(为此,如果使用 Unix,我可以配置一个 CRON 文件)。

前端应用程序(viz):

  • 连接到数据库
  • 启动一个在端口 3000 上等待的服务器(我需要它来进行可视化)
  • 每次用户刷新页面 ( onLoad()) 时,应用程序都会进行一次查询 ( SELECT) 从数据库中获取数据。以这种方式,数据总是被更新。

此应用程序仅由程序员启动一次(理想情况下)。

我创建了这种类型的文件夹结构(我使用了npm initand Express):

使用这种结构,我已经有两个我不知道如何解决的问题:

  1.postgreSQLlib.js文件 (and also ) 在andutilFunc.js中是相同的。我怎样才能避免这种重复的代码?scraperviz

2. 我必须在and文件夹  中安装一些模块(例如express-handlebarsand express)两次。scraperviz

这是project/scraper/app.js

这是project/viz/app.js

第一个应用程序 ( project/scraper/app.js) 运行良好。

第二个申请(project/viz/app.js)没有。我希望你这样做:

  • 连接到数据库 [完成。有用]
  • 启动一个在端口 3000 上等待的服务器(我需要它来进行可视化)[我该怎么做?往下看(*) ]
  • 每次用户刷新页面 ( onLoad()) 时,应用程序都会进行查询 ( SELECT) 从数据库中获取数据

(*)我曾想过这样的事情:

wheredataHome和are 两个包含使用查询dataWork从数据库下载的数据的对象。SELECT但是通过这种方式,数据只会被报废一次,而不是每次用户刷新页面时。

帮助将不胜感激。谢谢!

编辑

你能更精确一点吗?我试图这样做,但它不起作用:

项目/即/app.js

项目\viz\view\index.handlebars

项目\viz\view\script.js

我哪里错了?

编辑 2

好的,我再次修改viz/app.js代码:

当我运行应用程序时,没有错误,但如果我连接到http://localhost:3000/,浏览器会告诉我无法访问该站点。我觉得有点傻...

编辑 3

如果我正确理解您的代码,则您的代码中存在(分散注意力的)错误。returnOBJ()代替res.render('index', viewData);它应该是res.render('obj', viewData);(与文件有关obj.hbs)。正确的?

我以这种方式更改 index.hbs 文件:

但我得到:

我也不明白这段代码。

为什么你app.set('view engine', ...)用不同的值调用两次?

编辑 4

我进一步简化了代码:

/viz/app.js

/viz/views/test.hbs

然后在提示命令中,我转到project/viz并键入node app.js+ enter。该过程开始并等待:没有错误。当我去http://localhost:3000/但我得到Connection failed

我快疯了。

编辑 5

问题不connect在于做出选择的函数,所以我稍微简化了代码。现在,它几乎可以工作了!

这是代码。

即/app.js

即/views/index.hbs

问题是得到一个不是 json 的数据类型。例如,当我尝试打印时间戳和 exString 时,它给了我错误。为什么?

此外,我想稍微清理一下代码,并将 javascript 部分放在script.js一个index.hbs使用<script src='/script.js'></script>.

编辑 6

我发现这个教程对我非常有用。

index.hbs通过添加一个 css 文件、一个图像和一个脚本来编辑文件(它只包含一个console.log('here');但想法是在 script.js 中放置viewData变量)。

项目/即/视图/index.hbs

我的文件结构是:

现在我看到了图像并使用了 css。但是脚本似乎不起作用,因为它没有在这里打印字符串。

我在互联网上搜索如何将变量从脚本标签传递到外部 js 文件,但我似乎没有找到任何适合我的东西。我已经阅读了车把 API,但它们并没有用。

0 投票
1 回答
129 浏览

javascript - 节点服务器,html输入null

我正在尝试使用 node 为前端应用程序提供服务,只是学习 express 的基础知识。我遇到的问题是我通过 SRC 链接到我的 html 的 javascript 无法访问 DOM。如果 console.log(document) 我可以将整个文档对象视为一个字符串,但是如果我尝试访问其中的任何内容,例如表单或正文,它将返回NULL。null null null null null。例如,console.log( document.getElementById('input') ) 将 null 记录到浏览器,而 console.log(document) 将文档记录到浏览器。我的 css 以同样的方式加载就可以了。为什么是这样?如何绕过它?

路径:天气/src/weather.html

html:

路径:天气/router.js

路由器.js:

0 投票
1 回答
25 浏览

express - 给定一个控制器函数或路由路径,如何在 Express JS 中获取完整的路由 URL?

我正在编写一个 Express JS 应用程序,我需要计算给定控制器功能或路由路径的路由。

例如:

或者,给定参数,它可以填写 URL 参数,例如:

来自 .NET,使用 UrlHelper 非常容易:

new UrlHelper(Request).Link("Things Route Name", new { id = 1 }); // returns https://host/api/v1/things/1

0 投票
2 回答
62 浏览

node.js - 无法在 Express NodeJS 中配置路由器

我有下一个服务器文件:

以及接下来的两条路线和index.js目录:chat.js./routes

第一个index.js通过标准端口正常加载localhost:8989/,但是当我得到第二个路由时-我localhost:8989/chat总是收到error-...Cannot GET /chat

我在做什么错?

0 投票
1 回答
2145 浏览

node.js - Node.js 如何将错误消息从快速路由器发送到 Web 控制台

在我的应用程序中,我正在放置一个 http 请求,并且在快乐的情况下一切正常。但是当我故意提供错误数据来填充错误时,它会在 node.js 服务器控制台中显示错误,但不会将错误消息发送到 Web 控制台。

在我的 Angularjs 中,我在角度控制器功能中放置了如下 $http 请求。

处理这个请求app.js

在路由文件夹中,我有startprocess.js 以下代码,

请建议我更好的错误处理方式。如果收到错误,我想显示一些警报。我注意到如果出现错误,它会在服务器控制台上显示错误,但在 chrome 控制台中In Start, something went wrong.显示“ ”。success in startprocess

谢谢

0 投票
1 回答
107 浏览

javascript - 带有快速路由的 node.js 项目中 Bootstrap 主题的资产管理

我来自 PHP 背景并使用了一段时间的引导框架,目前正在使用 Node.js 并使用路由项目进行表达。我很难理解如何在视图(index.html)中调用项目资产(js、css、图像等)。

用于包含类似 in (index.php) 的文件

我在 Node.js 中尝试了类似的方法,但在使用路由时似乎并不直接。

我经历了几个SO1 来理解这个概念,但不能。

我的 index.js

我的 index.html

上述方法不起作用,所以我遵循SO2问题

什么是更好的方法,因为我将拥有资产(jquery、bootstrap css、自定义脚本等)。

0 投票
1 回答
513 浏览

node.js - 快速路由返回 404 错误

我的节点应用程序中的快速路由返回 404 错误。它在本地工作,但在生产服务器上返回 404 错误(请记住,我在上传之前将 AJAX url 更改为生产服务器上的那个)。我的代码:

server.js:

index.js:

0 投票
1 回答
27 浏览

express - 材料无法使用快速路由

我在我的 angular-cli 应用程序中使用 angular/material 它工作正常,但是当我单独使用客户端门户时,我已经为每个面板(前端和客户端门户)实现了 2 个引导主题,材料工作正常,但是当我从前端主题重定向到我的客户端门户使用快速路由我的角度材料不工作分页工作正常,但我的垫选择没有显示下拉菜单,角度材料的视图也不起作用。