我知道这个问题有答案,但它们并没有为我充分发挥作用。我正在使用Angular
1.4和Express4。Express正在处理API调用,而Angular应该正在处理所有HTML。
我的快递app.js:
var express = require('express');
var path = require('path');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
require('./routes/api')(app);
var app = express();
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, '../client')));
// This covers serving up the index page
app.use(express.static(path.join(__dirname, '../client/.tmp')));
app.use(express.static(path.join(__dirname, '../client/app')));
app.all('*', function(req, res) {
res.redirect('/index.html');
});
module.exports = app;
这是有角度的app.js
angular
.module('punyioApp', [
'ngAnimate',
'ngAria',
'ngCookies',
'ngMessages',
'ngResource',
'ngRoute',
'ngSanitize',
'ngTouch'
])
.config(function ($routeProvider, $locationProvider) {
$routeProvider
.when('/', {
templateUrl: 'views/main.html',
controller: 'MainCtrl',
controllerAs: 'main'
})
.when('/howitworks', {
templateUrl: 'views/howitworks.html',
controller: 'HowItWorksCtrl',
controllerAs: 'howitworks'
})
.otherwise({
redirectTo: '/'
});
$locationProvider.html5Mode(true);
});
现在,如果我转到http:// localhost:3000
/
,则会得到预期的主Angular视图。问题是当我转到http:// localhost:3000 /
howitworks时,它将我重定向到http:// localhost:3000
/ index.html,并且不显示“
howitworks”视图。如何修复快速路由器,以便可以转到http:// localhost:3000 /
howitworks?
您的代码只是将每个请求重定向到index.html
,这不是您想要的。您确实需要该文件,但是由于Angular可以处理路由,因此您只希望Express发送文件,而不会出现任何问题。
基本上,您不应该使用redirect
,但是sendFile
:
app.get('/*', function(req, res) {
res.sendFile(__dirname + '/index.html')
});
另外,正如某人在评论中指出的那样,您应该使用get
和而不是all
。
我是NodeJS的新手,我正试图从express和express-generator开始。我已经使用以下命令安装了express: 然后我安装了快速生成器模块: 然后,我为项目创建一个文件夹并安装解除依赖项: 那里一切正常,但当我尝试使用以下命令启动服务器时,问题就出现了: 好像服务启动了但是一启动就关闭了,结果: 当我尝试打开localhost:3000它不起作用。我在网上搜索,我还没有找到解决
我对Express.js和Github OAuth api很陌生,但遇到了困难。 它会返回一个代码。从这一点开始,我使用该代码获取访问令牌。访问令牌会返回,但它会作为下载到我的机器的文件返回,而不是对我的服务器的响应。我错过了什么?
我正在努力正确配置nginx,以确保它可以处理Express(端口8081)和Socket的代理。io(端口3000)。下面是我的配置,它当前为整个请求(不仅仅是Socket.io)产生了502错误: 据我所知,我需要确保Socket使用的Websocket。io已升级到HTTP,但这正是我努力掌握自己需要做什么的地方。可能是两个插座。io和Express需要在不同的端口上运行,然后需要根据我上面
我正在查看用Scala编写GraphQL服务器的Sangria库。但奇怪的是,同一个类型系统必须实现两次:(1)作为GraphQL类型声明的一部分,(2)也是在服务器端,作为Scala case类,附带ObjectType、InterfaceType等。 在Scala中硬编码类型系统尤其令人厌烦,因为我的目的是能够CRUD任意形状的聚合,其中每个形状都被定义为类型的GraphQL集合。例如,假设S
如果我使用,我会得到以下错误: 我找了很长时间,但什么也找不到。
我有一个有组的模式。这些组都是可选的。 完整的posible模式是: 但也可以看起来像这样 不可能在组中获得限定词,例如(组A不可能' = ')。 所以我尝试了这些正则表达式: 问题: 如果缺少组,则不匹配 具有“#”(E)的组包含第一个组“-”(F)<ul> 001.002 可编程逻辑控制器。003 M01.001 P1 测试-KF2-- 我的错是什么?