에도 불구하고 DB가 선택되지 않았습니다. 따라서 node.js 코드에 "No database selected"오류가 표시됩니다. 그러나 선택되어 있으며 연결 문은 처음 시작할 때 성공적인 메시지를 반환합니다. 내 튜토리얼 (https://www.sitepoint.com/using-node-mysql-javascript-client/)Node.JS
또한 npm을 사용하는 노드 용 MySQL 모듈을 설치했는데 모듈 아래에 있다고해도 데이터베이스를 넣어도 여전히 제대로 작동하지 않습니다. 존재하지 않는 무언가가 있으면 그것은 여전히 성공적인 연결이라고 말할 것입니다. 그래서 나는 두 부분의 질문 : 어떻게 실제로 MySQL 구성 요소를 제대로 다운로드했는지 확인하고 내 봇에서 실수를 저지르고 있는지 확인하는 것입니다. 아래 코드.
// Dependencies =========================
var
twit = require('twit'),
config = require('./config');
var mysql = require("mysql");
var con = mysql.createConnection(
{
host: "localhost",
user: "root",
password: "Jaljap2732!",
dateStrings: true,
datebase: "rawdata"
});
var Twitter = new twit(config);
con.connect(function(err) {
if(err) {
console.log("Sorry Fam, error connecting");
} else {
console.log("Connection Successful")
}
});
var searchTweets = function(){
var params = {
q: 'since:2017-04-01', // REQUIRED
result_type: 'recent',
count:'10',
lang: 'en'
}
// find the tweet
Twitter.get('search/tweets', params, function(err,data){
// find tweets
var tweet = data.statuses;
//console.log(tweet);
for(var result in tweet) {
console.log("text: " + tweet[result].text);
var created_at = tweet[result].created_at;
var date = created_at.split(" ");
var month = date[1];
var sqlDate = date[5] + "-" + monthToInt(month) + "-" + date[2];
var data = {
tweet: tweet[result].text,
posted: sqlDate,
User_idUser: tweet[result].user.screen_name
};
con.query('INSERT INTO tweet SET ?', data, function(err, rows) {
if(err) throw err;
else {
console.log("Data from DB");
console.log(rows);
}
});
console.log("Posted at: " + date[1] + " " + date[2] + " " + date[5]);
console.log("Converted Date: " + monthToInt(month));
console.log("User: " + tweet[result].user.screen_name);
}
});
}
// grab & 'favorite' as soon as program is running...
searchTweets();
// 'favorite' a tweet in every 15 minutes
setInterval(searchTweets, 900000);
function monthToInt(month) {
//We will return a string representation of the month
//using numbers in order to insert it into our SQL table.
var result = "";
switch(month) {
case "Jan":
console.log("Janaury: 01");
result = "01";
break;
case "Feb":
console.log("February: 02");
result = "02";
break;
case "Mar":
console.log("March: 03");
result = "03";
break;
case "Apr":
console.log("April: 04");
result = "04";
break;
case "May":
console.log("May: 05");
result = "05";
break;
case "Jun":
console.log("Jun: 06");
result = "06";
break;
case "Jul":
console.log("Jul: 07");
result = "07";
break;
case "Aug":
console.log("August: 08");
result = "08";
break;
case "Sept":
console.log("September: 09");
result = "09";
break;
case "Sep":
console.log("September: 09");
result = "09";
break;
case "Oct":
console.log("October: 10");
result = "10";
break;
case "Nov":
console.log("November: 11");
result = "11";
break;
case "Dec":
console.log("December: 12");
result = "12";
break;
}
return result;
}
db 연결 콜백 내에서 모든 tweeting을 수행해야합니까? –
어쩌면? 나는 정직하기 위해 node.js에 상당히 익숙하지 않다. 그리고 나는 여전히 전화를 끊는다. – SomeStudent
올바르게 다운로드했는지 확인하려면'node_modules' 폴더에있는'mysql' 폴더를 지우고'npm install mysql '을 실행하면 패키지가 다시 설치됩니다. –