Tag: path

为什么我可以使用绝对path而不是相对的方式将带有Formidable的file upload到文件夹?

和其他许多新手一样,我正沿着Manuel Kiessling的“The Node Beginner Book”继续学习。 我们应该通过Formidable模块来启动图像上传,不断地将图像重命名为“test.png”并显示。 本书使用path/tmp/test.png ,一切工作正常。 但是这不是一个相对path,我的图像实际上保存在Linux的tmp文件夹中! 我在我的项目中创build了文件夹“tmp”,并试图使相同的事情发生在那里,但我只显示一个错误! ENOENT, open './tmp/test.png' 当我尝试pathtmp/test.png时,同样的事情发生,但有趣的部分是,当我把一个实际的图像直接放入tmp文件夹并将其显示在我的页面上时,这两个path都起作用。 所以没有语义/语法错误,或..? 我的requestHandler.js,其中重要的部分是上传和显示function: var querystring = require("querystring"), fs = require("fs"), formidable = require("formidable"); function start(response) { console.log("Request handler 'start' was called."); var body = '<html>' + '<head>' + '<meta http-equiv="Content-Type" content="text/html; ' + 'charset=UTF-8" />' + '</head>' + '<body>' + '<form action="/upload" […]

NPM – 有条件地增加全球path

在Node package.json文件中,可以将多个可执行文件映射到全局NPM安装( npm install -g )上的PATH环境variables: "bin": { "foo": "./bin/foo.js", "bar": "./bin/bar.js" }, 我有一个独特的项目,需要映射操作系统上没有它的现有PATHvariables。 例如,我想添加一个名为grep的命令给PATH , 当且仅当它被安装在Windows计算机上。 如果计算机正在运行其他操作系统,则NPM安装将显然失败。 有没有什么办法可以预先确定在安装中可用的bin选项? 哦,快点 – 我只是有一个主意! 这将工作: 父模块具有npm (编程版本)作为依赖。 在全局安装中,运行父模块的package.json中声明的安装后脚本。 安装后脚本对系统进行检查以查看存在哪些命令。 这将比“Windows或不Windows”更成熟 – 它会试图执行一个命令列表,看看哪些失败。 对于每个不存在的命令,安装后的脚本以编程方式在所有子模块上运行npm install -g (每个命令一个,如grep )。 这将需要一段时间, npm模块是巨大的,但它似乎是可行的。 没有?

有没有办法强制path.normalize使用Windows / Macpath格式?

本质上,我正在通过代码撰写电子邮件,并希望追加到该电子邮件两个文件path到服务器上的文件,一个为mac用户和一个为windows用户点击,无论如何产生这两个这些无论是什么机器我在吗?

Express.JSpath问题与句柄

事情是。 “应用程序”文件夹是我的节点的逻辑坐落在那里,你可以find视图文件夹,模板的句柄(快速句柄)。 在“config”文件夹中,有一个express.js文件,其中实际需要express软件包,并且还设置了app引擎和variables: line 1: app.engine('handlebars', handlebars.engine); line 2: app.set('views', path.join(__dirname, '../app/views'); line 3: app.set('view engine', 'handlebars'); server.js文件需要config文件夹中的express.js文件,就是这样。 如果我把“views”文件夹放在根目录(第二行除外),一切正常,但是,如果我使用第2行和图片中显示的文件夹结构,我总是得到一个错误ENOENT:“没有这样的文件或目录..“ 尝试通知“views”文件夹的正确path时,尝试在第2行上使用什么格式并不重要,错误消息始终表示无法find文件,显示的URL总是忽略“app”文件夹(它显示我尝试的每个path,但它使应用程序部分消失)。 不pipe我做什么,但节点似乎只是忽略该应用程序文件夹..就好像我无法访问它。 Ex: 1) path.join(__dirname, "../app/views"); > ENOENT "C:\root\views\layouts\main.handlebars". 2) path.join(__dirname, "../xapp/views"); > Failed lookup view "C:\root\xapp\views" Note how the "app" portion of the first option disapears from the url !! 我假设这是一个“path”问题,我不明白是怎么回事。 有人可以帮我解决吗? 如果有人知道我在哪里可以读到关于这个“path事件”背后的逻辑,我会很感激。 例如:当我只使用“__dirname”在第2行,我得到的错误消息是节点“无法查看视图”文件名“在视图目录:”path_string /configuration“…这是我很难解释(我是个新手),但是我认为你们比我更有经验,可以理解我在说什么。 […]

NodeJS:需求中的“./ ..”和“..”有什么区别?

有什么区别 var XYZ = require('./../xyz'); 和 var XYZ = require('../xyz'); 哪一个是首选?

Windows 7 NODE_PATH全局variables设置,但不能在package.json中识别

我在Windows 7 x86上安装了节点v6.0.0,npm v3.8.6。 定义的全局variablesNODE_PATH: C:\Users\usr\dev\test>echo %NODE_PATH% %AppData%\npm\node_modules 下载不同的项目开始开发,但总是得到相同的错误: 'NODE_PATH' is not recognized as an internal or external command, 可操作程序或batch file。 试过不同的包脚本,但总是相同的错误: 的package.json: "scripts": { "build-js": "NODE_PATH=. browserify -t [ babelify –presets [ es2015 ] ] src/client/index.js > public/app.js", "serve": "NODE_PATH=./dist node dist/src/server", } 如何将NODE_PATH识别为全局variables?

如何告诉一个本地的node.js扩展名在哪里可以find(正确的)libstdc ++?

我正在从npm安装scrypt ( https://www.npmjs.com/package/scrypt )。 安装涉及构build本地node.js扩展的node-gyp构build步骤。 当我然后启动我的应用程序,它失败,出现以下错误: node index.js module.js:568 return process.dlopen(module, path._makeLong(filename)); ^ Error: /package/host/localhost/gcc-4/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /home/xxxx/xxxx/node_modules/scrypt/build/Release/scrypt.node) at Error (native) at Object.Module._extensions..node (module.js:568:18) at Module.load (module.js:456:32) at tryModuleLoad (module.js:415:12) at Function.Module._load (module.js:407:3) at Module.require (module.js:466:17) at require (internal/module.js:20:19) at Object.<anonymous> (/home/xxxx/xxxx/node_modules/scrypt/index.js:3:20) at Module._compile (module.js:541:32) at Object.Module._extensions..js (module.js:550:10) at Module.load (module.js:456:32) […]

path分隔符跨os平台

来自fs.mkdtemp上的nodejs 文档 const tmpDir = '/tmp'; const subdir = '/com.domain.app'; !fs.existsSync(tmp + subdir) ? fs.mkdirSync(tmp + subdir) : null; // This method is *CORRECT*: const path = require('path'); fs.mkdtemp(tmpDir + path.sep + subdir + path.sep, function(err, folder){ if (err) throw err; console.log(folder); }); 我的问题是关于path.sep和临时目录,我希望代码是平台不可知的,并能够在多个平台上运行。 在所有nodejs平台上, path.sep的价值是什么。 所有nodejs平台上tmp目录的价值是什么? 是/tmp在Windows上可用? 当涉及到临时目录/path时,上述代码的任何build议 谢谢

Nodejs +把手 – 拉当前的URLpath并传递给助手

我正在尝试创build一个meta标签句柄助手抓取urlpath名,并使用该值的switch语句,然后将string返回到我的元标记在HTML头,但我不知道当前抓取url的最佳途径我的switch语句的path。 我试过window.location.pathname ,但得到一个错误,没有定义window 。 我知道path模块需要你传递一些东西来parsing出来,但是我不确定最好的值是什么。 谁能帮我? 这是我的手柄帮手文件: var path = require('path'); var metaHelpers = function(hbs) { hbs.registerHelper('metaTitle', function(){ var urlPath = path.dirname(); console.log(urlPath); switch(urlPath) { case "/": { return 'Index Test' } break; case "/login": { return 'Login Test' } break; default: { return 'No Meta Tag' } } }); }; module.exports = metaHelpers;

Heroku nodejspath问题…错误:ENOENT:没有这样的文件或目录

我有一个nodejs应用程序使用hapi.js,我试图从一个URL下载图像。 Heroku给我错误的path。 我的代码: Request(uri).pipe(fs.createWriteStream(__dirname+'/../public/images/'+filename)).on('close', callback); 我的错误: Error: ENOENT: no such file or directory, open '/app/../public/images/1430540759757341747_4232065786.jpg' 我的文件结构很简单: app.js -public -images -sampleimage.jpg -videos -samplevideo.mp4 -audio -sampleaudio.wav 正如你所看到的,heroku应用程序的__dirname是/ app。 我已经尝试使用__dirname +'各种path../ ./ etc',我也尝试过,没有__dirname。 我将使用ffmpeg和一个语音工具创build很多这些文件。 那么有谁能向我解释我有什么样的问题? 这是可以通过使用正确的path名称解决的东西,还是我需要configuration我的hapijs服务器configuration?