Tag: 路由

关于获取请求上的参数的静态资源上的错误404

我正在做一个生物医学网站与node.js,我遇到了一个问题:在我的app.js(服务器文件),我有这些代码 app.get('/disease/:orphanetID', function(req, res) { var orphanetID=req.params.orphanetID; res.render('pages/disease.ejs', {activetitle: "views"}); }); 问题是疾病所需的所有静态资源都会得到404错误。 例如,这个代码在disease.ejs中: <script src="static/js/DOMscripts.js"></script> 在Chrome控制台中,我看到: (red cross) GET http://localhost:8080/disease/static/js/DOMscripts.js 事情是,我的静态资源是在http:// localhost:8080 /静态/ js / DOMscripts.js ,只有string“疾病”在URL中出现…这不是一个好的URL! 在testing了一些东西之后,我发现这个代码正在工作: app.get('/disease', function(req, res) { //var orphanetID=req.params.orphanetID; res.render('pages/disease.ejs', {activetitle: "views"}); }); 所以,如果我没有任何参数,它的工作,但我需要它。 有关信息,我的代码为静态资源是: app.use('/static', express.static(__dirname + '/public')); 我该怎么做一个参数?

节点快递app.all不能路由到所需的模块

我有2个文件:extfile.js routes = require('express').Router(); function CB (req,res) { res.send('Hello from file'); }; routes.all('/', CB); module.exports = routes; 和app.js: App = require('express')(); CB2 = require('./extfile'); function CB (req,res) { res.send('Hello world'); }; App.all('/', CB); // Fine Alt 1 App.all('/', CB2); // Fine! Alt 2 App.all('/test', CB); // Fine App.all('/t2', CB2); // Gives: "Cannot GET /t2" ??? […]

将前端的值传递给后端,而不使用url

我有一个平均堆栈应用程序。 在后端,我有api.js : var express = require('express') var router = express.Router(); var body = 'response.send("hello fixed")'; var F = new Function ("request", "response", body); router.get('/api/special', F); module.exports = router; 因此,在浏览器中https://localhost:3000/api/special返回hello fixed 。 现在,我想让前端定义body的内容。 例如,我可以在网页上制作一个textarea,用户可以随意input例如response.send("hello flexible") 。 然后,我需要将这些内容传递给nodejs,以便https://localhost:3000/api/special现在返回hello flexible 。 有谁知道如何做到这一点? 编辑1:继李安李的评论,我修改了api.js : var express = require('express') var router = express.Router(); router.put('/endpoint', function (req, res, next) […]

angular2嵌套路由不工作,没有错误报告,但空白页

请帮我检查一下代码…没有编译错误,否则在npm start后cli输出,但浏览器看起来是一个空白页面。 我一遍又一遍地检查,但仍然找不到有什么问题。 PS:我是一个新生在angular2 … app.module @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, AdminModule, WaiterModule, CookModule, AppRoutingModule ], providers: [], bootstrap: [AppComponent] }) export class AppModule { } APP-routing.module const appRoutes: Routes = [ { path: "", redirectTo: "/admin", pathMatch:"full" } ]; @NgModule({ imports: [ RouterModule.forRoot(appRoutes, { enableTracing: true }) ], exports: [RouterModule] }) […]

meteor银河部署 – 控制台错误,而托pipe和没有路线显示

如上所述,我的应用程序托pipe在Galaxy上时出现问题。 我无法看到我的网站的任何内容: 我只看到这个: 但是我用铁路路由器定义了所有的路由。 我有我的导入文件夹中的一些反应路由器的东西,也许这是问题? 我不知道… 另外我收到这些错误消息: 混合内容: https ://myapp.eu.meteorapp.com/上的网页已通过HTTPS加载,但要求使用不安全的样式表“ http://fonts.googleapis.com/css?family=Open+Sans:300,400,600,700 ”。 此请求已被阻止; 内容必须通过HTTPS提供。 和 未捕获的错误:引导的JavaScript需要jQuery的版本1.9.1或更高,但低于3版本在较低21478a3d30e8f0ae766afe74c96bb1f3590793e6.js:115在21478a3d30e8f0ae766afe74c96bb1f3590793e6.js:115在21478a3d30e8f0ae766afe74c96bb1f3590793e6.js:115在21478a3d30e8f0ae766afe74c96bb1f3590793e6.js:115 我正在使用Chrome浏览器。 我只是想看到任何…请 UPDATE 我所有的路线都是这样的: Router.route('/', function () { Router.go('home'); }); Router.route('/imprint', function () { this.render('imprint'); }); Router.route('/dashboard', function () { this.render('dashboard'); }); 有时像: Router.route('/do/:home/editDetails/:Id', function () { var params = this.params; Session.set('home', params.home); Session.set('Id', params.Id); this.render('editDetails'); }); 或同等学历。 我正在使用meteor铁路由器包。 […]

CRUD – 将ID传递到新forms以执行更新操作

我正在尝试构build一个应用程序来使用angular / nodejs / cloudant来完成基本的CRUDfunction。 我在尝试构build更新操作时遇到了问题。 我需要以下function: 当我点击更新(表中的button)时,我需要一个新的表单,其中所有的细节,以获得预填充的基础上,使字段可以相应地更新。 我正在使用angular路由为了传递和检索新forms的ID。 但是,当我点击更新,我没有看到任何事情发生。 我对应用程序开发非常陌生(特别是angular度)。 有人可以帮助我执行操作所需的代码更改。 以下是我的代码。 index.HTML :(索引页执行更新操作) tr ng-repeat="x in myData"> <td><input type="button" value="Update" data-ng-click="update(x.doc._id)" > </td> update.js: angular.module('CRUDApp', ['formly', 'formlyBootstrap'] ); angular.module('CRUDApp').config(function($stateProvider, $urlRouterProvider, $urlMatcherFactoryProvider) { $urlMatcherFactoryProvider.strictMode(false) $stateProvider.state('update', { url: '/update/:id', templateUrl: 'public/Views/update.html', }) .state('home', { url: '/home', templateUrl: 'index.html', }) $urlRouterProvider.otherwise('/home'); }); update.html(单击更新时的新窗体): <!DOCTYPE html> <html> […]

表示路由器没有调用get空的obj返回请求

我正在调用从angular度4获得请求。 我已经使用expressjs路由器。 我得到的电话不来我的路由器function。 如果我使用一个虚拟身份证,它工作正常。 这是我的前端代码 getOnlineUser(){ console.log('nline –') return new Promise((resolve, reject) => { this.http.get(this.url+'/chat/getonlineusers') .map(res => res.json()) .subscribe(res => { resolve(res); }, (err) => { reject(err); }); }); } 这里是我的expressjs路由器代码 router.get('/getonlineusers', function(req, res, next) { console.log('here it is—+=============———- ') // the above console not working OnlineUsers.find({}, function (err, Users) { console.log(Users) if (err) return […]

在数据库中获取基于id的快速js url路由

我有包含articleID和articleDescription的文章表的sqlite数据库。 我正在使用expressjs作为服务器: app.get('/articleDetail/:id',function(req,res){ res.sendFile(path.join(__dirname+'/articleDetail.html')); var id = req.params.id; var query = "select * from article where articleID = " + id; }); 我想在数据库中显示基于其id的文章内容。 例如:当您在主页上select第5条时,会将您带到url…. / articleDetail / 5,并向用户显示内容。 我有两个问题的总结:我如何连接和我的数据库中的ID到url/路线的ID? 我如何使用express来显示正确的文章内容? 谢谢你的帮助。

在express js中路由子path后找不到资源404

它可能看起来很傻,但我无法find一个适当的答案。 我正在尝试处理一个请求与快速Js PARAMS: app.get('/status/:id', function(req, res, next) { var par = req.params.id; . . . res.render('profile', {xxx: par}); }); 但问题是资源不加载,我得到我的静态资源的404错误。 错误: GET /status/stylesheets/style.css 404 31.761 ms – 3296 GET /status/stylesheets/customize.css 404 53.355 ms – 3296 GET /status/javascripts/signup.js 404 91.891 ms – 3296 GET / images / Lizofile-white。 png 304 0.564 ms – – GET /images/profile.png […]

Express Node.js框架:如何通过replace一个命名的参数段来重新编写一个URL?

在我的Express应用程序中,当路线中的某些参数符合某些条件时,我想使用路线参数前提条件执行一些redirect。 作为一个例子,假设我希望将参数word转换为全部大写,如果还没有的话。 参数word可能出现在几个不同的路由中,例如/:word , /foo/:word , /foo/:word/bar等等。幸运的是,在路由参数前提下,例如(CoffeeScript中的代码): app.param 'word', (req, res, next, word) -> if word isnt word.toUpperCase() new_URL = // current URL, but replace word with word.toUpperCase() // res.redirect new_URL, 301 我的问题是关于如何构造new_URL ,用它的大写等价物replace:word 。 我希望能够使用相同的函数构造new_URL ,而不pipe当前正在使用哪条path。 我看到有req.route ,但没有定义。 我想我可以通过req.app.routes.routes.get[req._route_index]访问当前匹配的路由,然后拆分path ,并重新构build它,但似乎过于复杂。 有没有办法简单地迭代当前路线的path段? 谢谢!