Express应用程序生成器(位于here)的入门页面表示如果使用MacOS或Linux,则使用$ DEBUG=myapp:* npm start
启动服务器。
这很好用,但是我无法理解这条线实际上在做什么。我猜想它会为变量DEBUG
分配一些内容,但在退出服务器之后我运行echo $DEBUG
并且它什么都没有打印。我猜测:
在某种程度上是关键,但我不清楚如何/为什么。
希望有人可以为我解决这个问题。
答案 0 :(得分:9)
DEBUG=myapp:* npm start
由两部分组成。
第一部分是DEBUG=myapp:*
,第二部分是npm start
您可以先在命令行工具中运行DEBUG=myapp:*
,然后再运行npm start
然后运行DEBUG=myapp:*
。
myapp
表示您告诉nodejs您要打开日志记录以进行调试。
scripts
告诉npm运行package.json文件中声明的start
,脚本名称为public void insert(history t) {
try {
String query = "INSERT INTO " + TABLE_NAME + " VALUES(null, '" + t.getWord() + "', '" + t.getDate() + "', '" + t.getMean() + "')";
SQLiteDatabase db = this.getWritableDatabase();
db.beginTransaction();
// db.execSQL(query);
// db.close();
ContentValues values = new ContentValues();
values.put("word", t.getWord());
values.put("date", t.getDate());
values.put("mean", t.getMean());
long id = db.insert(TABLE_NAME, null, values);
db.setTransactionSuccessful();
db.endTransaction();
db.close();
// I have 6 rows in table after inserted a row i get size of table = 7(increase +1).
// After that i try to get size of table in other activity but it's still only 6. I used Explorer in order to see all of data on android but i could not find the new row.
Toast.makeText(context, "id inserted = " + id + " / size of table =" + getAll().size(), Toast.LENGTH_SHORT).show();
// Toast show : id inserted =7/ size of table =7
} catch (Exception ex) {
Toast.makeText(context, "ex :" + ex.getMessage(), Toast.LENGTH_SHORT).show();
}
答案 1 :(得分:3)
DEBUG是一个环境变量,在会话期间通过通配符*设置为myapp应用程序中的所有调试器。 DEBUG变量由" tiny node.js&您的库和应用程序的浏览器调试实用程序",可以找到文档here。
答案 2 :(得分:2)
这是临时任务; npm
在其环境中查看指定的值,但不会影响当前的shell。在DEBUG
退出后,npm
会保留其拥有(或未设置)的任何值。
答案 3 :(得分:2)
事实证明,我认为这比实际情况要复杂得多。切普纳的回答让我脑子里的齿轮松了一圈。
我创建了一个python脚本,打印DEBUG
变量并调用它而不是npm start
$ DEBUG=myapp:* python printvar.py
果然,打印出myapp:*
。我遗漏的一件大事似乎是变量赋值后的空格被用作命令之间的分隔符而:*
只不过是被分配给变量的变量的一部分的文本。 DEBUG
。
答案 4 :(得分:2)
condition_dict={
'rewards':show_reward_form,
'user_conditionals':show_conditionals_form,
'organizer_info': lambda w:(show_organizer_info_form(w.request.user)),
}
被设置为lambda w
和子进程的环境变量但未在shell中设置,请考虑以下事项:
DEBUG
在您的情况下,值npm
被分配给变量HELLO=World bash -c 'echo $HELLO' # World
HELLO=World bash -c "bash -c 'echo \$HELLO'" # World
echo $HELLO # Nothing, assuming that HELLO was null before running the above snippets
。此变量将在myapp:*
内提供,由于什么原因我无法回答。
答案 5 :(得分:0)
:只是分配给env变量的文本。
该行正在做什么以及如何运作如下:
首先,我将讨论明确的内部级调试消息。以下env设置都显示相同的内部日志级别
DEBUG=express:*, npm start
DEBUG=express.*, npm start
DEBUG=express*, npm start
以下设置仅显示内部路由器的内部日志级别消息
DEBUG=express:router, npm start
DEBUG=express.router, npm start
现在为了查看“应用程序”级别的DEBUG语句。使用调试功能添加到代码中的那些。
它与您的模块依赖关系有关。传递给调试包的值。值可以是任意名称 - 也就是说它们不需要匹配package.json,文件,对象变量名等。但是env变量DEBUG值需要与代码中传递给调试包的值相对应。
这行代码
var debug = require('debug') ('myapp:myapp');
考虑这两个文件
www
…
var debug = require('debug')('myapp:www');
app.js
…
var debug = require('debug')('myapp:app');
然后,如果我们运行以下场景:
我们得到以下信息:
vagrant@n1:~/despobaldo/server$ DEBUG=myapp:* npm start
> server@0.0.0 start /home/vagrant/despobaldo/server
> node ./bin/www
myapp:app here I am +0ms
myapp:www Listening on port 3000 +8ms
^Cvagrant@n1:~/despobaldo/server$
vagrant@n1:~/despobaldo/server$
vagrant@n1:~/despobaldo/server$ DEBUG=myapp:www npm start
> server@0.0.0 start /home/vagrant/despobaldo/server
> node ./bin/www
myapp:www Listening on port 3000 +0ms
^Cvagrant@n1:~/despobaldo/server$
vagrant@n1:~/despobaldo/server$
vagrant@n1:~/despobaldo/server$ DEBUG=myapp:app npm start
> server@0.0.0 start /home/vagrant/despobaldo/server
> node ./bin/www
myapp:app here I am +0ms
^Cvagrant@n1:~/despobaldo/server$
vagrant@n1:~/despobaldo/server$
vagrant@n1:~/despobaldo/server$
要查看内部和“应用程序”级别的日志记录,您可以执行以下操作:
DEBUG = myapp:*,express:router npm start
vagrant@n1:~/despobaldo/server$
vagrant@n1:~/despobaldo/server$ DEBUG=myapp:*,express:router npm start
> server@0.0.0 start /home/vagrant/despobaldo/server
> node ./bin/www
express:router use '/' query +0ms
express:router use '/' expressInit +4ms
express:router use '/' logger +0ms
express:router use '/' jsonParser +7ms
express:router use '/' urlencodedParser +3ms
express:router use '/' cookieParser +0ms
express:router use '/' serveStatic +1ms
myapp:app here I am +0ms
express:router use '/' router +1ms
express:router use '/users' router +0ms
express:router use '/' <anonymous> +0ms
express:router use '/' <anonymous> +0ms
myapp:www Listening on port 3000 +7ms
^Cvagrant@n1:~/despobaldo/server$