我正在学习节点,并且在运行mysql查询时遇到问题。我确定我已经连接到mysql db(因为当我从连接到DB的同一模块运行查询时,我能够将行打印到控制台日志中)。但是,当我需要将数据库连接到另一个文件并在查询中使用时,出现500错误。我在堆栈溢出上花了最后几个小时,仍然卡住了。它绝对不是功能,就好像我只是返回文本一样,可以正常工作,因此绝对可以与我利用db连接的方式有关。数据库连接文件如下:
class ReviewSummaryItemPipeline(object):
@classmethod
def from_crawler(cls, crawler):
pipeline = cls()
crawler.signals.connect(pipeline.spider_opened, signals.spider_opened)
crawler.signals.connect(pipeline.spider_closed, signals.spider_closed)
return pipeline
def spider_opened(self, spider):
# change the output file name based on argument
self.file = open(f'reviews_summary_{spider.brand_name}.csv', 'w+b')
self.exporter = CsvItemExporter(self.file)
self.exporter.start_exporting()
def spider_closed(self, spider):
self.exporter.finish_exporting()
self.file.close()
def process_item(self, item, spider):
self.exporter.export_item(item)
return item
我们在下面的查询中使用数据库连接的模块:
// initialize database connection
const mysql = require('mysql')
var db;
function connectDatabase() {
if (!db) {
db = mysql.createConnection({
host: process.env.DB_HOST,
user: process.env.DB_USER,
password: process.env.DB_PASS,
database: process.env.DB_DATABASE
})
db.connect(function(err){
if(!err) {
console.log('Database is connected!')
} else {
console.log('Error connecting database!')
}
})
}
return db
}
module.exports = connectDatabase()