7

console.logは次のように出力します。

{ [error: syntax error at or near "step"]
  length: 86,
  name: 'error',
  severity: 'ERROR',
  code: '42601',
  detail: undefined,
  hint: undefined,
  position: '62',
  internalPosition: undefined,
  internalQuery: undefined,
  where: undefined,
  file: 'scan.l',
  line: '1001',
  routine: 'scanner_yyerror' }

しかし、JSON.stringifyは、エラーの説明部分を認識しません。

{"長さ":86、 "名前": "エラー"、 "重大度": "エラー"、 "コード": "42601"、 "位置": "62"、 "ファイル": "スキャン.l"、 " line ":" 1001 "、" routing ":" scanner_yyerror "}

ウィキ( https://github.com/brianc/node-postgres/wiki/Error-handling、http:// nodejs)を読んで、この「エラー:列「未定義」が存在しません」を取得する方法がわかりません。 ru / doc / v0.4.x / stdio.html#console.log

コードはこんな感じ、

   client.query(selstring, function(err, result) {
   if(err){
     res.send(JSON.stringify(err));
     console.log(err);
   }else{

ありがとう

更新:err.toString()ショーerror: syntax error at or near "step"

4

4 に答える 4

5

pgエラーは標準のJsError()objのサブクラスであるため、基本エラー「description」にはerr.message...を介してアクセスできます。

console.log(new Error("hello world"));
[Error: hello world]
console.log(new Error("hello world").message);
hello world

Error.prototypeを追加することにより、独自のエラーオブジェクトの標準Errorオブジェクトをサブクラス化できます。

Kevinの投稿を参照してくださいJavaScriptでカスタムエラーを作成するにはどうすればよいですか?

于 2015-05-18T05:50:36.100 に答える
0

私は長い間同じことを理解するのに苦労してきました。

の出力を見るとJSON.stringify(err)、オブジェクトに名前のない属性として配列があるように見えます。匿名属性でオブジェクトを作成することさえ可能ですか?私はかつてこれをかなり長い間いじりましたが、から同様の構造を生成できるオブジェクトを構築する方法さえ見つけることができませんでしたJSON.stringify

err.messageが実際に文字列にアクセスするように機能することを発見しましたが、文字列化されたバージョンでは「message」が属性として表示されないため、理由がよくわかりません。'message'がerrの属性である場合、stringifyからの出力に表示されないのはなぜですか?そうでない場合、それはどこから来ているのですか?

于 2014-04-18T23:31:16.353 に答える
-1

最初のステップは、次のようなコンソールを置きます

console.log(query.text);

リンクを参照してください

http://dailyjs.com/2011/09/26/heroku/

于 2013-08-20T12:42:45.770 に答える
-1

簡単な修正は、デフォルトのポートであっても、接続にポートパラメータを追加することです。私はまったく同じ問題を抱えていました。このgithubの問題から解決策を見つけました。

var pg_conn_conf = {
  username: 'user',
  pass: 'pass',
  port: 5432,
  host: 'localhost',
  db: 'mydb'
};

Error.prototypeを拡張することを提案する別のstackoverflowの回答もあります。幸い、この場合はそれに対処する必要はありません。しかし、それを知るのは良いトリックです。

于 2014-07-29T20:44:22.973 に答える