var express = require('express');
var router = express.Router();
var bodyParser = require('body-parser');
var nodemailer = require('nodemailer');
var TWILIO_TOKEN = "270ff32fe16828869dc30e0c6926fa9e";
var client = require('twilio')(process.env.AC55a59221acb23a5aa6f046740bb73317, process.env.TWILIO_TOKEN);
router.use(bodyParser.urlencoded({extended: true}));
router.use(bodyParser.json());
router.post('/', function(req, res) {
console.log('this is the req', req.body);
client.messages.creat({
to:'+19522209630',
from:'+17633249718',
body:'hello World'
}, function(err, data) {
if (err) {
console.log('err', err);
console.log('data', data);
}
});//en d of sendMessage
res.send(200);
});
module.exports = router;

/Users/moisesmiguelhernandez/Documents/prime/solo_project/node_modules/twilio/lib/rest/Twilio.js:101
throw new Error('username is required');
^
Error: username is required
at new Twilio (/Users/moisesmiguelhernandez/Documents/prime/solo_project/node_modules/twilio/lib/rest/Twilio.js:101:11)
at initializer (/Users/moisesmiguelhernandez/Documents/prime/solo_project/node_modules/twilio/lib/index.js:8:10)
at Object.<anonymous> (/Users/moisesmiguelhernandez/Documents/prime/solo_project/routes/sendMessage.js:6:31)
at Module._compile (module.js:569:30)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:503:32)
at tryModuleLoad (module.js:466:12)
at Function.Module._load (module.js:458:3)
at Module.require (module.js:513:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/Users/moisesmiguelhernandez/Documents/prime/solo_project/server.js:10:19)
at Module._compile (module.js:569:30)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:503:32)
at tryModuleLoad (module.js:466:12)
at Function.Module._load (module.js:458:3)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! solo_project@1.0.0 start: `node server.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the solo_project@1.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/moisesmiguelhernandez/.npm/_logs/2017-07-11T15_02_02_750Z-debug.log
&#13;
我收到并且错误表示用户名是必需的。我正在尝试使用twilio。我关注了YouTube视频,我就像他一样。对于如何解决这个问题,有任何的建议吗? P.S索引文件是终端错误消息
答案 0 :(得分:2)
将这些文件保存到文件夹根目录下的.env文件中
TWILIO_TOKEN = "270ff32fe16828869dc30e0c6926fa9e"
TWILIO_ACCOUNT_SID = "AC55a59221acb23a5aa6f046740bb73317"
然后安装
npm install dotenv --save
之后,您可以在文件中使用这些环境变量,如下所示:
require('dotenv').load();
var client = require('twilio')(process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_TOKEN);
答案 1 :(得分:2)
我也有同样的问题。
然后我添加了我的
TWILIO_ACCOUNT_SID = ***
TWILIO_AUTH_TOKEN = ***
完整代码:
require('dotenv').config();
const accountSid = process.env.ACCOUNT_SID;
const authToken = process.env.AUTH_TOKEN;
const client = require('twilio')(accountSid, authToken);
client.calls
.create({
url: 'http://demo.twilio.com/docs/voice.xml',
to: process.env.CELL_PHONE,
from: process.env.TWIL_NUM,
})
.then(call => console.log(call.sid))
.catch(err => console.log(err));
答案 2 :(得分:1)
var TWILIO_TOKEN = "270ff32fe16828869dc30e0c6926fa9e";
var TWILIO_ACCOUNT_SID = "AC55a59221acb23a5aa6f046740bb73317";
var client = require('twilio')(process.env.TWILIO_ACCOUNT_SID, process.env.TWILIO_TOKEN);
@philnash我更改了它并修复了创建错字但终端仍然说“用户名是必需的”
答案 3 :(得分:1)
注意-:这根本不是一个好方法,而只是一种解决方法。我会尽快以正确的方式编辑答案。这只是一个对我有用的技巧。
const client = require('twilio')(<YOUR_ACCOUNT_SID>, <YOUR_ACCOUNT_KEY>);
基本上直接使用键而不是通过任何变量引用。
答案 4 :(得分:0)
Twilio开发者传道者在这里。
除了Champa在评论中指出的creat
中的拼写错误,我想我知道你哪里出错了。您的代码目前有:
var client = require('twilio')(process.env.AC55a59221acb23a5aa6f046740bb73317, process.env.TWILIO_TOKEN);
我猜它应该有类似process.env.TWILIO_ACCOUNT_SID
的东西。
帐户sid实际上是访问API的用户名,这就是错误消息说明的原因。
让我知道这是否有帮助。
答案 5 :(得分:0)
我今天遇到了这个问题,在运行twilio测试时收到了消息Error: username is required
。由于我使用dotenv,我的环境变量有一个.env
文件,这就是我犯了错误的地方。我们有另一个应用SID
和TOKEN
变量的应用,所以我复制了它们并留在export
关键字,即export TWILIO_ACCOUNT_SID=...
,但如果使用dotenv
,不需要export
关键字。我删除了export
并重新运行我的测试脚本,这一切都有效,例如。
TWILIO_ACCOUNT_SID=***
TWILIO_AUTH_TOKEN=***
答案 6 :(得分:0)
当我们遇到相同的错误时,我正在与一位同事一起工作。我尝试了几乎所有解决方案,但对我没有用(在某种意义上,这里的大多数解决方案是相同的。)
我们如何解决这个问题真是太神奇了:如何?
在使用名为.env的文件作为环境变量时,您需要仔细检查创建此文件的位置
.env
文件必须在您的根目录中创建。这意味着必须在项目文件夹中,而不在项目内部的子文件夹中。// index.js
// this wrong, notice process.env.AC55a59221acb23a5aa6f046740bb73317 in client variable
TWILIO_TOKEN = "270ff32fe16828869dc30e0c6926fa9e";
var client = require('twilio')(process.env.AC55a59221acb23a5aa6f046740bb73317, process.env.TWILIO_TOKEN);
这是正确的
process.env.TWILIO_ACCOUNT_SID
// .env
TWILIO_ACCOUNT_SID=AC55a59221acb23a5aa6f046740bb73317
对我们犯的错误感兴趣,这是.env
文件的错误放置。
答案 7 :(得分:0)
我之前遇到过这个错误,所以添加到上面的答案中确保 .env 文件在根目录中,所有拼写都正确并且使用了 dotenv 包。