у меня есть это:node.js передать переменную модуля вернуть результат
test.js
:
getData(fetchData)
function fetchData (callback) {
params = 'query'
var s = require('./helpers/query')(params)
callback(params)
}
function getData() {
fetchData(function (params) {
console.log(params)
})
}
query.js
:
module.exports = function (param) {
var queryString = {}
var db = require('./queryDB')
// Check key isn't in db already, key being the param
db.get(param, function (err, value) {
if (typeof (value) !== 'undefined') {
console.log('ALREADY IN DB ', param)
} else {
// Put a search query
db.put(param, Date(), function (err) {
if (err) return console.log('Ooops!', err) // some kind of I/O error
console.log('LOGGED QUERY STRING ', param)
return param + ' YO!'
})
}
})
return queryString
}
Я хочу, чтобы иметь возможность передавать в ключевой строке в быть добавлен в базу данных и возвращать строку в этом случае params = 'query'
Я просто пытаюсь получить строку с param + ' YO!'
, поэтому я знаю, что она работает, что я делаю неправильно?
Нужно ли иметь обратный вызов в test.js
?
UPDATE 1 я добавил функцию обратного вызова в и query.js
еще возвращает переданную params
значение и не возвращает param + ' YO!'
UPDATE 2 Ok, так что я promiseified это и до сих пор не могу получить В результате, вот обновленный код до сих пор не работает
test.js
var query = require('./helpers/query')
console.log(query.searchQuery())
query.js
var ura = require('unique-random-array')
var strings = require('./strings')
var qs = ura(strings.queryString)
var qsSq = ura(strings.queryStringSubQuery)
var query = qs() + qsSq()
module.exports = {
searchQuery: function() {
var promise = new Promise(function(resolve, reject) {
var db = require('./queryDB')
// Check key isn't in db already, key being the query
db.get(query, function(err, value) {
if (typeof(value) !== 'undefined') {
console.log('ALREADY IN DB', query)
return
}
else {
// Put a search query
db.put(query, Date(), function(err) {
if (err) return console.log('Ooops!', err) // some kind of I/O error
// console.log('LOGGED QUERY STRING', query)
// return query + ' YO!'
})
}
})
resolve(query, 'all good')
})
promise.then(function(result) {
// console.log(result)
return result
}).catch(function(err) {
// console.error('ERR', err)
})
}
}
Я добавил обратный вызов, который возвратил переданный параметр, но не измененную строку – spences10
Ну, тогда вы, вероятно, не использовали его правильно. Невозможно сказать, не видя кода. – Timo
Код находится в этом вопросе? Что еще тебе нужно? – spences10