Javascript 如何获得快速JS substr?
当我尝试替换一个变量时,我得到一个返回错误,如:Javascript 如何获得快速JS substr?,javascript,node.js,express,ejs,Javascript,Node.js,Express,Ejs,当我尝试替换一个变量时,我得到一个返回错误,如: TypeError:无法读取未定义的属性“substr” 这是我的代码: app.get('/reports/FUHAUHS9029019.CSV',函数(req、res、next){ var filepath=req.params.name; var ffilepath=filepath.substr(0,12); var filename=req.params.name; var ffilename=filename.substr(-18);
TypeError:无法读取未定义的属性“substr”
这是我的代码:
app.get('/reports/FUHAUHS9029019.CSV',函数(req、res、next){
var filepath=req.params.name;
var ffilepath=filepath.substr(0,12);
var filename=req.params.name;
var ffilename=filename.substr(-18);
console.log(ffilepath);
res.send('filename:'+req.params.filepath.substr(-18));
res.download(文件名,edifilepath);
});
如何从文件中获取子字符串?尝试将动态路由器应用到这个路由器上,但除了substr错误之外,我也没有从中得到任何东西
非常感谢:D您需要设置参数:
app.get('/reports/:name', function(req, res, next){
var filepath = req.params.name;
var ffilepath = filepath.substr(0,12);
var filename = req.params.name;
var ffilename = filename.substr(-18);
console.log(ffilepath);
res.send('filename: ' + ffilename);
//res.download(filename, edifilepath); // also check this line
});
req.params
是空对象,因为您尚未在路由URL中指定任何参数。因此,req.params.name
是未定义的
,因此不能对未定义的
值调用.substr()
。请用文字描述您实际试图实现的目标,因为您的代码没有描述此处要解决的实际问题。如果您用文字描述您正试图通过此路线实现的目标,人们可以写出更好、更完整的答案。就目前而言,这个问题相当不清楚。请给出您希望路由匹配的多个URL的示例,然后描述您希望在路由中完成的任务。在用户指定的动态字符串值上使用硬编码常量,如12
和-18
,可能是任何内容,都不可能产生可预测的正确结果。我同意,但是他可能总是知道他要发送的参数的长度。我只是想帮助解决“substr of undefined”问题。所以,你不能在同一个请求上同时调用res.send()
和res.download()
。您只能发送一个响应。无法对同一请求发送多个响应。我建议您将答案更改为只教授如何在URL中指定参数以及如何使用该参数的req.param
,并将其余代码保留在答案之外。