gpt4 book ai didi

javascript - 如何在 Node JS 中执行正则表达式匹配?

转载 作者:行者123 更新时间:2023-12-03 04:18:57 26 4
gpt4 key购买 nike

var http = require('http');
var fs = require('fs');
var extfs = require('extfs');
var exec = require('child_process').execSync;
var url = require('url');
const PORT=8282;

function handleRequest(request, response){

var regex = fs.readFileSync('./output.txt', 'utf8');
var res = regex.match(/<.*class='.*(post-title).*>\n.*</g);

response.end(res);
}


var server = http.createServer(handleRequest);
server.listen(PORT, function(){
console.log("Server listening on: http://localhost:%s", PORT);
});

上面是我的 Node JS Web 服务器,在运行时,将启动一个临时 Web 服务器监听端口 8282。

我已经在 https://regex101.com/ 中测试了我的正则表达式以确保它能够正确匹配。

我的问题是,当我发出 GET 请求时,我的网络服务器将崩溃,并且我得到的错误是第一个参数必须是字符串或缓冲区我知道这是由于 Node 的异步特性造成的在上面的代码行完成之前,JS 和 response.end(res) 首先运行。

我不知道如何解决这个问题。任何建议将不胜感激。

最佳答案

不,它与异步执行无关,代码中的行是顺序执行的。

您的问题是 match() 函数返回一个字符串数组,即既不是字符串也不是缓冲区

关于javascript - 如何在 Node JS 中执行正则表达式匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44030672/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com