[英]node js Cannot read property 'replace' of undefined using regexp
router.js代碼:
var file = __dirname + '\\text\\article.txt';
fs.readFile(file, 'utf8', function(err, data) {
var regexp1 = /\{title:(.*)\}/ig;
var matches1 = regexp1.exec(data);
data = data.replace(regexp1, '');
var regexp2 = /\[img:([0-9]{1,4})\]/ig;
var matches2;
while ((matches2 = regexp2.exec(data)) != null) {
data = data.replace(matches2[0], '<img src=\"../../imgs/' + matches2[1] + '.png\" /\>');
}
var regexp3 = /(?:\r\n|\r|\n)/g;
data = data.replace(regexp3, '<br />');
respond.render('view.pug', {
title: matches1[1],
article: data
});
});
(為什么密碼盒會自動斷開?/我使用行來區分。)
如果我在網站上訪問,控制台出現以下錯誤:
C:\Dev\whitenoise\testsite\router.js:29
data = data.replace(regexp1, '');
^
TypeError:無法讀取FSReqWrap.readFileAfterOpen處ReadFileContext.callback(C:\\ Dev \\ whitenoise \\ testsite \\ router.js:29:16)中未定義的屬性“替換”(作為oncomplete)(fs.js:366:13)
這是什么?? 我在Google中找不到解決方案,請幫助
您的數據變量未定義,這意味着在讀取文件時可能出現了一些錯誤,這很可能與它的路徑有關。 加
var file = __dirname + '\\text\\article.txt';
console.log(file);
並檢查結果是否將導致您的文件。 另外,由於您正在讀取服務器上的文件,因此應使用url,而不是路徑。 所以大概應該是這樣
var file = __dirname + '/text/article.txt';
用“ /”代替“ \\\\”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.