var str = "test"; console.log(str); // test console.log(`str`) //str 这里的str是模板语法里面的,而不是变量str console.log(`${str}`); //模板语法引入变量str, 输出 test console.log(`'${str}'`); /输出 'test';
这个问题是今天使用sql的时候发现的,
`INSERT INTO user (id, username, password) VALUES (0, ${req.body.username}, ${req.body.password})`
上面这样最后的结果是类似于 INSERT INTO user (id, username, password) VALUES (0, username, password) 这种结果
正确的做法应该是 INSERT INTO user (id, username, password) VALUES (0, ‘${req.body.username}’, ‘${req.body.password}’)
这样输出的才是 INSERT INTO user (id, username, password) VALUES (0, 'username', 'password')
也就是说在模板当中,虽然你传入的变量是字符串,但是在模板当中解析的是不带引号的,需要引号还需要另外加