有人可以使用Typescript准确解释导出和导入在NodeJS中的工作原理吗?
我的设置是:
我正在搞乱出口/进口,而不是做一些正确的编码,它让我疯狂,并且找不到任何正确的解释它是如何工作的.
进口
你能解释一下:
var module = require ("module");
import module = require("module");
import module from "module";
import {something} from "module";
import * as module from "module";
Run Code Online (Sandbox Code Playgroud)
出口
你能解释一下吗?
export = something;
export default something;
export interface|class something;
Run Code Online (Sandbox Code Playgroud)
问题
我似乎无法找到适当的方式来进行导出与导入,所以我的IDE没有被红色覆盖并向我抛出数百个错误.
一般的问题
问题清单一直在继续,但我确定一旦上面的一些问题得到解答,我可以接受其余的问题.
谢谢你,对于这样一个普遍的问题感到抱歉,但我的沮丧程度刚刚达到顶峰......
是否可以完全禁用HTML的清理?
我想要实现的是在我的控制器中:
$scope.greeting = '<h2>Hello World</h2>'
Run Code Online (Sandbox Code Playgroud)
在我看来
{{greeting}}
Run Code Online (Sandbox Code Playgroud)
我不能(也不想)使用ng-bind-html等,我想一起禁用消毒.
只是为了给出一些更多的上下文 - 我正在准备简单的"框架环绕"来开发特定系统的模板.
当您为此系统开发模板时,他们有预先定义的片段,您可以通过编写"{{something}}"来放置在页面上,但它不是在角度上运行(可能是小胡子或其他东西).
现在模板只能在线开发,这是非常用户不友好的过程.因此,我设置了角度与相应路线等的简单项目,因此每个人都可以在他们的机器上开发模板,然后只需将其复制到系统.
这就是为什么在模板文件中它不应该以角度完成它,它只是尽可能接近它们的系统.
最后一点 - 我尝试过:
myApp.config(['$sceProvider',function($sceProvider){
$sceProvider.enabled(false);
}]);
Run Code Online (Sandbox Code Playgroud)
没有为我做任何事
我试图实现的一个例子:
class Test {
private _folderId: number;
private _pageId: number;
private _folderName: string;
private _pageName: string;
constructor(pageId: string | number, folderId: string | number){
this._folderId = (!isNaN(+folderId)) ? folderId : undefined;
this._pageId = (!isNaN(+pageId)) ? pageId : undefined;
this._folderName = (isNaN(+folderId)) ? folderId : undefined;
this._pageName = (isNaN(+pageId)) ? pageId : undefined;
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,这会引发编译器错误:
TS2322:Type 'string | number' is not assignable to type 'number'. Type 'string' is not assignable to type 'number'.
Run Code Online (Sandbox Code Playgroud)
依此类推(每个 var 都有类似的错误)。
有什么办法可以解决吗?目前我唯一能做的就是设置页面和文件夹 ID 以输入任何...
我们正在使用简单的函数声明,其中函数采用单个对象或某种类型的对象数组.
简单的声明是:
interface ISomeInterface {
name: string;
}
class SomeClass {
public names: ISomeInterface[] = [];
public addNames(names: ISomeInterface | ISomeInterface[]): void {
names = (!Array.isArray(names)) ? [names] : names;
this.names = this.names.concat(names);
}
}
Run Code Online (Sandbox Code Playgroud)
但TypeScript抛出"type is not assignable"错误.
这样做有更好的方法吗?显然我们可以有两个独立的功能,但我认为以这种方式处理单个vs多个是很好的.
目前正在开发具有restify的API,但仍然不能习惯在头文件中指定API版本.它似乎不是非常用户友好.
有没有办法让版本成为网址的一部分?
示例是:
http://domain.com/api/v1/action
Run Code Online (Sandbox Code Playgroud)
在我的情况下甚至更好:
http://api.domain.com/v1/action
Run Code Online (Sandbox Code Playgroud)
谢谢
将用TypeScript编写的NodeJS服务器部署到生产中的最佳实践是什么?
我想避免为我的git存储库中的每个脚本提供3个文件(ts,js,map).
我可以使用grunt/gulp来创建"dist"目录并将所有已编译的文件复制到那里,但是我会将它们放在我的repo中.我可以为编译的代码创建单独的repo,但我认为这并不理想.
此外,当我在node app.ts没有js或地图存在的情况下运行时,它实际上启动一切正常.那么节点服务器甚至需要编译文件吗?
注意:我没有任何编译脚本/任务,我的IDE正在为我自动编译ts文件.
我有应用程序,其中有公共路线和授权路线。公共路由也应该通过 auth,但如果 auth 失败,也没关系。
所以我有两个路由器:
var publicRoutes = express.Router();
var secretRoutes = express.Router();
publicRoutes
.use(auth)
.use(ignoreAuthError);
publicRoutes.get('/public', function(req, res){
res.status(200).send({message: "public"});
});
secretRoutes
.use(auth)
.use(handleAuthError);
secretRoutes.get('/secret', function(req, res){
res.status(200).send({message: "secret"});
});
...
app.use(publicRoutes);
app.use(secretRoutes);
Run Code Online (Sandbox Code Playgroud)
现在一切正常,但是如果我更改app.use公共路由的顺序会引发身份验证错误。此外,我无法收到任何 404、500 等错误,因为它们都经历了身份验证错误。
很明显,正在发生的事情是Router.use()应用于所有具有相同根的路由 - 在这种情况下"/"
因此,我认为如果我只auth在所有路由上使用中间件,然后将其他中间件直接添加到路由中,它应该可以正常工作。但这有点阻碍了我拥有多个路由器的意义。
我希望如果我使用Router.use()中间件,则仅当该特定路由器匹配它已设置的任何路由时才适用,而不是更改其他路由器的行为。
我理解正确吗?有没有办法解决这个问题,而实际上不必为每条路由添加中间件?
有没有办法忽略*.js并*.js.map在Jetbrains的集成开发环境打字稿项目?
现在,我的PHPStorm中有一个TypeScript项目,当我搜索文件时,ctrl+shift+N我得到了所有文件 - *.ts, *.js, *.js.map这迫使我每次搜索时都选择一个打字稿文件,而不是快速跳转到文件.
有没有办法从搜索过滤编译的文件?我尝试了范围等,但它没有做到这一点.
PS:我知道在TypeScript上工作会建议使用WebStorm,但我发现PHPStorm给了我最好的产品体验.
我很抱歉这个问题很糟糕,但我想在网址中用#打开模态.因此,如果我打电话给www.domain.com/#modal1,它将打开带有模式加速的页面.
哦,我正在使用jquery.
谢谢!
我们对此图有类似的设置
当请求到达HAProxy时,它会将roundrobin平衡到任何服务器,后端服务器检查其缓存,如果资源不在该服务器上,则会发出重定向,并将标头设置为正确的服务器IP.
第二次请求到达HAProxy时,它会检测到后端服务器的头是否存在,但是如何直接获取该IP并将请求直接发送给它?
例如,第二次请求到达haproxy它有头 X-BACKEND-IP=10.0.0.5
因此,haproxy尝试对该请求进行负载均衡,我希望它读取标头,获取该IP并直接转到该后端.
那可能吗?如果没有,是否可以使用nginx?
typescript ×5
node.js ×4
javascript ×3
angularjs ×1
express ×1
haproxy ×1
import ×1
jquery ×1
modal-dialog ×1
networking ×1
nginx ×1
phpstorm ×1
restify ×1
routes ×1
routing ×1
tslint ×1
url ×1