我尝试使用node.js加载文件。
在我看来,我有一个按钮:
doctype 5
html(ng-app="lineApp")
head
title= title
link(rel='stylesheet', href='/stylesheets/style.css')
body
p filename: #{filename}
button(onclick="location.href='/app/#{filename}'") click me
该页面显示带filename: C:\users\username\my filename.txt
的段落。
当我点击按钮时,URL就像http://localhost:8080/app/C:usersusernamemy%20filename.txt
所以当我尝试检索参数
时exports.appli = function (req, res) {
var filename = req.params.filename;
//....
});
};
与服务器端呼叫:
app.get('/app/:filename?', routes.appli);
我的文件名无效。那我的问题是,如何将文件路径作为参数传递给URL?
答案 0 :(得分:1)
这是斜杠充当转义字符的问题。
第一次将字符串传递给客户端时,任何转义斜杠(例如:c:\\users\\username\\my file.txt
)都会转换为单斜杠。
使用href.location
时,斜杠第二次作为转义字符 ...这就是为什么当您尝试使用它来调用服务器时它们会退出。
你可以:
例如,根据您原来的玉石:
body
p filename: #{filename}
button(onclick="location.href='/app/#{encodedFilename}'") click me