cnpm/cnpmjs.org

数据库token表新建失败 和 npm adduser 失败

aoliaoliao opened this issue · 2 comments

服务端环境

阿里云ESC
centos 7.6.1810
mysql 5.7.28
node 6.17.1
cnpm.org 3.0.0-rc.36

客户端环境

npm 6.11.3
nrm 1.2.1

问题1

执行 source docs/db.sql 时出现错误:

Key column 'user' doesn't exist in table

对应的sql语句是:

CREATE TABLE IF NOT EXISTS `token` (
 `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'primary key',
 `gmt_create` datetime NOT NULL COMMENT 'create time',
 `gmt_modified` datetime NOT NULL COMMENT 'modified time',
 `token` varchar(100) NOT NULL COMMENT 'token',
 `user_id` varchar(100) NOT NULL COMMENT 'user name',
 `readonly` tinyint NOT NULL DEFAULT 0 COMMENT 'readonly or not, 1: true, other: false',
 `token_key` varchar(200) NOT NULL COMMENT 'token sha512 hash',
 `cidr_whitelist` varchar(500) NOT NULL COMMENT 'ip list, ["127.0.0.1"]',
 PRIMARY KEY (`id`),
 UNIQUE KEY `uk_token` (`token`),
 KEY `idx_user` (`user`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='token info';

问题2

按照教程在服务端安装cnpm,在客户端成功打开 7002 端口的页面,使用nrm切换到私有仓库的源(http://ip: 7001)使用 npm adduser 时报错:

500 Internal Server Error - PUT http://101.132.139.198:7001/-/user/org.couchdb.user:test8

此时,查看数据库发现 user 表中却新增了对应数据,尝试使用npm login, 依然报同样的错误。

报错的log:

0 info it worked if it ends with ok
1 verbose cli [ 'C:\\Program Files\\nodejs\\node.exe',
1 verbose cli   'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli   'adduser' ]
2 info using npm@6.11.3
3 info using node@v10.17.0
4 verbose npm-session 1a9eb935983422e6
5 verbose web login before first POST
6 http fetch POST 404 http://101.132.139.198:7001/-/v1/login 65ms
7 verbose web login not supported, trying couch
8 verbose login before first PUT { _id: 'org.couchdb.user:test8',
8 verbose login   name: 'test8',
8 verbose login   password: 'XXXXX',
8 verbose login   type: 'user',
8 verbose login   roles: [],
8 verbose login   date: '2020-10-12T08:30:20.030Z' }
9 http fetch PUT 422 http://101.132.139.198:7001/-/user/org.couchdb.user:test8 68ms
10 verbose adduser before first PUT { _id: 'org.couchdb.user:test8',
10 verbose adduser   name: 'test8',
10 verbose adduser   password: 'XXXXX',
10 verbose adduser   email: 'test@163.com',
10 verbose adduser   type: 'user',
10 verbose adduser   roles: [],
10 verbose adduser   date: '2020-10-12T08:30:20.100Z' }
11 http fetch PUT 500 http://101.132.139.198:7001/-/user/org.couchdb.user:test8 70212ms attempt #3
12 verbose stack Error: 500 Internal Server Error - PUT http://101.132.139.198:7001/-/user/org.couchdb.user:test8
12 verbose stack     at res.buffer.catch.then.body (C:\Users\YCKJ2072\AppData\Roaming\nvm\v10.17.0\node_modules\npm\node_modules\npm-registry-fetch\check-response.js:104:15)
12 verbose stack     at process._tickCallback (internal/process/next_tick.js:68:7)
13 verbose statusCode 500
14 verbose cwd D:\
15 verbose Windows_NT 10.0.18362
16 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "adduser"
17 verbose node v10.17.0
18 verbose npm  v6.11.3
19 error code E500
20 error 500 Internal Server Error - PUT http://101.132.139.198:7001/-/user/org.couchdb.user:test8
21 verbose exit [ 1, true ]



一模一样的问题,希望仓库的开发者可以帮忙解决一下😭

一模一样的问题,希望仓库的开发者可以帮忙解决一下😭

最新的3.x版本功能似乎不完善,还是先用2.x的稳定版吧。我用的2.19.4版本,可以搭建成功。