wm-ddns
Version:
简单的 DNS 修改 Record 的包。 [https://DNSpod.cn](https://DNSpod.cn)。支持 callback & Promise & async/await。
238 lines (174 loc) • 4.4 kB
Markdown
简单的 DNS 修改 Record 的包。 [https://DNSpod.cn](https://DNSpod.cn)。支持 callback & Promise & async/await。
## 用法
```
const DDNS = require('wm-ddns');
const domain = new DDNS('email', 'passwd', 'domain.com'); // 旧版本鉴权
const newDomain = new DDNS('domain.com', { loginToken: '', loginId: '' });
```
> 目前 DNSpod 已经不推荐用账户密码进行鉴权,而是申请一套鉴权。
>
> 鉴权包含 token 和 id 两部分。 token 只有在申请成功显示一次。
### DNSDomain 对象
domai 对象
Examples:
```javascript
const DDns = require('wm-ddns');
const domain = new DDns('email', 'passwd', 'domain.com');
domain.create("@", "A", '127.0.0.1', function(err, record) {
// ..
});
```
#### domain.createRecord(subDomain, recordType, value, [options], callback)
create record
* `subDomain` sub-domain, default `@`
* `recordType` record type.like `A`, `CANME`
* `value` record value.
* `options` optional params
* `MX`
* `recordLine` default `默认`
* `recordLineId`
* `ttl`
* `status`
* `weight`
* `callback`
* `err`
* `record` record object
#### domain.recordList([offset, length], callback)
get records by page
* `offset` default 0
* `length` defualt 300
* `callback`
* `err` err
* `record-list` records list
#### domain.recordByName(subDomain, callback, json)
get record by name
* `subDomain` sub-domain
* `callback`
* `err`
* `record` record object
* `json` default false.if true, callback json.
#### domain.recordById(recordId, callback, json)
get record by record id
* `recordId` record id
* `callback`
* `err`
* `record` record object
* `json` default false.if value is true, it will callback a json.
#### domain.recordByKeyword(keyword, [offset, length], callback)
get record by keyword.
* `keyword` keyword
* `callback`
* `err`
* `record` record object
* `json` default false.if true, callback json.
* `callback`
* `err`
* `record` record object
#### domain.updateRecord(recordId, subDomain, value, [options, ]callback)
update record by recordId
* `recordId` recordId
* `subDomain` subDomain
* `value` value
* `options`
* `mx`
* `recordLine` default `默认`
* `recordLineId`
* `ttl`
* `status`
* `weight`
* `callback`
* `err`
* `record` record object
#### domain.updateRecordByName(subDomain, recordType, value, [options, ]callback)
update record by subDomain
* `subDomain` subDomain
* `value` value
* `options`
* `mx`
* `recordLine` default `默认`
* `recordLineId`
* `ttl`
* `status`
* `weight`
* `callback`
* `err`
* `record` record object
#### domain.removeRecord(recordId, callback)
remove record
* `recordId` recordId
#### domain.ddns(value, callback)
* `value` value
* `callback`
* `err`
* `record` record object
#### domain.remark(remark, callback)
* `remark` remark value
* `callback`
* `err`
* `record` record object
#### domain.setStatus(status, callback)
* `status` status value
* `callback`
* `err`
* `record` record object
### Record
> DNS record
>
> DNS 记录
#### record.toJSON()
convert record object to json object;
#### record.clone(record)
clone record from another record
#### record.update(subDomain, recordType, value, options, callback)
update record info
* `subDomain` subDomain
* `recordType` `A`, `CNAME`, etc.
* `value` value
* `options`
* `mx`
* `recordLine` default `默认`
* `recordLineId`
* `ttl`
* `status`
* `weight`
* `callback`
* `err`
* `record` record object
#### record.setDns(value, callback)
update record dns
* `value` value
* `callback`
* `err`
* `record` record object
#### record.ddns(callback)
set value by local public ip.
get ip by `domain.getIP()`.
* `callback`
* `err`
* `record` record object
#### record.setRemark(remark, callback)
set remark.
* `remark` remark
* `callback`
* `err`
* `record` record object
#### record.setStatus(status, callback)
set status.
* `status` status
* `callback`
* `err`
* `record` record object
## Promise & async/await
> 支持 promise
>
> 通过 `util.promiseify()` 转换
```javascript
const DDNS = require('wm-ddns').DNSDomain;
const domain = new DDNS('email', 'passwd', 'domain.com'); // 旧版本鉴权
const newDomain = new DDNS('domain.com', { loginToken: '', loginId: '' }); //新版本鉴权
async done() {
const record = await domain.createRecord('name', 'type', 'value');
await domain.removeRecord(record.id);
}
done();
```