似乎每个人都有样本可以运行,但我的不会......
我在windows 7 64bit中安装了nodejs 0.8.2。是否npm install -g typescript
获得了TypeScript支持。然后我从TypeScript下载了源代码并尝试了样本
但我无法得到节点样本进行编译。它返回错误消息:
c:\..\..\typescript\bin\tsc.js:21182
if(_fs.existsSync(path)) {
^
TypeError: Object #(Object) has no method 'existsSync'
...
...
还有其他人看过这个问题吗?
在没有找到任何东西的情况下四处寻找。
说我有这段代码:
///<reference path="node.d.ts"/>
import http = module("http");
var server = http.createServer(function (req, res)
{
res.writeHead(200, { 'ContenType': 'text/plain' });
res.end('Hello World');
});
server.listen(1337);
在Visual 2012 Express for web中输入此内容,显示没有错误。引用到位,智能感知工作正常。但是当我使用带有节点的命令行工具来编译这个文件时,会弹出显示的错误。我没有在我自己的代码中包含_fs.existsSync。
好的...在玩了tsc.js和nodejs之后......我意识到在节点引擎中从require('fs')创建的_fs对象根本就没有一个名为existsSync的函数...... / p>
搜索了一下之后......显然这个功能现在在路径模块下... 我将尝试编辑tsc.js以改为使用路径模块的existsSync函数。
答案 0 :(得分:2)
好的...改变tsc.js使用_path.existsSync似乎工作。 但经过一些更多的摆弄,我发现我的系统上的节点版本仍然是v0.6.2。 即使我之前尝试安装从网站下载的v0.8.12。 删除v0.6.2并安装v0.8.14后,现在fs模块包含目标函数。
我想知道为什么这个系统上的节点版本被卡在0.6.2~''〜
上答案 1 :(得分:1)
我认为问题是因为您的代码中存在拼写错误。尝试使用fs.existsSync(path)
。您正在尝试将方法分配给不存在的对象。
fs.existsSync('path/to/file');
或
fs.exists()
与上述内容同义,只有在连接成功时才使用回调。
fs.exists('/path/to/file', function (exists) {
util.debug(exists ? "it's there" : "no passwd!");
});