Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获得快速JS substr?_Javascript_Node.js_Express_Ejs - Fatal编程技术网

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
,并将其余代码保留在答案之外。