Это в основном означает, что один из объектов, которые вы пытаетесь вызвать функцией .then, не определен.
В частности, объект indicoUtils.indicoPositivosNegativos (req.params.id) должен быть обещанием, но ваша функция indicoPositivosNegativos не возвращает обещание.На самом деле ваша функция ничего не возвращает, поэтому .then вызывается с неопределенным значением.
Решение простое, вы должны добавить инструкцию return в calculator.js, чтобы вернуть обещание, подобное этому:
var indicoPositivosNegativos = function (chooserId) {
var TweetModel = mongoose.model('Tweet'.concat(chooserId), Tweet.tweetSchema);
return TweetModel.find({},{ _id: 1, tweet: 1}).then(tweets =>
Promise.all(
tweets.map(({ _id, tweet }) =>
indico.sentiment(tweet).then(result =>
TweetModel.findOneAndUpdate({ _id }, { indicoPositivoNegativo: result }, { new: true })
.then( updated => { console.log(updated); return updated })
)
)
)
)
};