Итак, я пишу приложение Node, и я пытаюсь добавить функцию, которая будет вызываться при создании нового пользователя. Я использую Twilio API для отправки SMS-сообщения кому-то, как только пользователь подписывается на приложение.Узел приложения не распознает функцию
app.js
var express = require('express');
var db = require('./models');
var bodyParser = require('body-parser');
var methodOverride = require("method-override");
var app = express();
var session = require('express-session');
var app = express();
var twilio = require('./js/twilio.js');
// app.set('port', (process.env.PORT || 3000));
app.use(express.static(__dirname + '/public'));
// views is directory for all template files
app.set('views', __dirname + '/views');
app.post("/signup", function (req, res) {
// Creating object to pass into db and twilio:
var new_user = {
first_name : req.body.first_name,
last_name : req.body.last_name,
phone : req.body.phone,
partner_phone : req.body.partner_phone,
email : req.body.email,
password : req.body.password
};
console.log("The new_user is: ", new_user)
twilio.send_sms_to(new_user);
db.User.create({first_name: new_user.first_name, last_name: new_user.last_name, phone: new_user.phone, partner_phone: new_user.partner_phone, email: new_user.email, password: new_user.password}).then(function(user){
res.render("login");
});
});
twilio.js
var send_sms_to = function (user) {
var client = new twilio.RestClient('secret key', 'super secret key'), msg = "Hello potential new user!",
phone = user.partner_phone,
name = user.first_name + " " + user.last_name;
console.log("Entries are: ", user.phone, user.first_name)
client.sms.messages.create({
to: phone,
from:'+16507970229',
body: msg
}, function(error, message) {
// The HTTP request to Twilio will run asynchronously. This callback
// function will be called when a response is received from Twilio
// The "error" variable will contain error information, if any.
// If the request was successful, this value will be "falsy"
if (!error) {
// The second argument to the callback will contain the information
// sent back by Twilio for the request. In this case, it is the
// information about the text messsage you just sent:
console.log('Success! The SID for this SMS message is:');
console.log(message.sid);
console.log('Message sent on:');
console.log(message.dateCreated);
} else {
console.log('Oops! There was an error.');
}
});
}`
Но каждый раз, когда я запускаю запрос на почту, я получаю сообщение об ошибке
TypeError: twilio.send_sms_to не является функцией
по адресу /Users/jamesbradley/codeProjects/indulge/indulge_app/app.js:256:10
(это линия "twilio.send_sms_to (new_user);" в app.js файле)
... хотя Nodemon работает сервер без каких-либо проблем. Что я делаю не так?
Просто кажется простой проблемой на вашем сервере. По-видимому, 'require ('./ public/js/twilio.js');' не правильный путь к вашему 'twilio.js'. – jfriend00
Путь к 'twilio.js' в' app.js' и вывод ошибки не совпадают с ошибкой, лишенной ведущего периода ('.'). Существуют ли другие места, где требуется «twilio.js», что может привести к ошибке? –
Я пробовал все и не могу понять, как исправить путь: ('./public/js/twilio.js') ('./js/twilio.js') ('../ public/js/twilio.js ') (' ../js/twilio.js ') (' public/js/twilio.js ') (' js/twilio.js ') –